Przechodzę z CakePHP 2.x i nie jest dla mnie jasne, jaka jest różnica między initialize()
i beforeFilter()
. Wydaje się, że wiele się między nimi pokrywa. Kiedy powinienem użyć jednego, a nie drugiego?W CakePHP 3.0 jaka jest różnica między initialize() i beforeFilter()?
Odpowiedz
initialize()
jest zawsze wywoływana.
beforeFilter()
jest opcjonalne. Jeśli jest obecny, jest to:
wywołana przed metodą poprzedzającą filtr kontrolera, ale po metodzie inicjalizacyjnej kontrolera().
http://book.cakephp.org/3.0/en/controllers/components.html#component-callbacks
Jest kolejność wydarzeń stało. initialize()
jest wywoływana zaraz po metodzie __construct()
, natomiast beforeFilter()
jest wywoływana tylko w przypadku wywołania akcji.
Dzięki, że możesz wyjaśnić, co masz na myśli przez "tylko wywoływane, jeśli akcja jest wysyłana"? – emersonthis
przed wywołaniem działania kontrolera, na przykład 'index()', 'add()', 'delete()' ... –
W przeciwieństwie do sytuacji, gdy sterownik jest właśnie tworzony ręcznie? Czy to ten pomysł? – emersonthis
Dotyczy to sytuacji, w której te metody są stosowane w komponentach. –