在CakePHP 3.0中,initialize()和beforeFilter()有什么区别?

eme*_*his 9 php cakephp cakephp-3.0

我是从CakePHP的2.x的转变,它是我不明白有什么区别之间initialize()beforeFilter().他们之间似乎有很多重叠.我何时应该使用一个而不是另一个?

Jos*_*uez 7

这是事件发生的顺序.initialize()__construct()方法之后调用,而beforeFilter()仅在调度操作时调用.

  • 谢谢您能否详细说明“仅在分派动作时才调用”的意思? (3认同)

Geo*_*ins 4

initialize()总是被调用。

\n\n

beforeFilter()是可选的。如果存在,则为:

\n\n
\n

在controller\xe2\x80\x99s beforeFilter方法之前调用,但在controller\xe2\x80\x99s的initialize()方法之后调用。

\n
\n\n

http://book.cakephp.org/3.0/en/controllers/components.html#component-callbacks

\n