我想在执行控制器方法之前执行一些操作。但我不能,因为initialize()方法在微应用程序中不起作用。我可以在Base控制器中查看方式并执行一些操作,但我认为它无效。
答案 0 :(得分:2)
您无法覆盖__construct()
的{{1}}方法,因为Phalcon\Mvc\Controller
定义为__construct()
,因此无法更改。
解决方法是让您的final
像这样延伸(而不是baseController
):
Phalcon\Mvc\Controller
或者代替上面的恶作剧,你可以使用内置方法class BaseController extends \Phalcon\DI\Injectable {
public function __construct() {
// ...
}
}
class YourController extends BaseController {
// do stuff
}
onConstruct
请注意,class BaseController extends Phalcon\Mvc\Controller {
public function onConstruct() {
// ...
}
}
方法会在创建控制器时触发。这与onConstruct()
方法的行为不同,后者在 initialize()
之后触发。
答案 1 :(得分:0)
是的,因为微控制器只是处理程序。可能使用__construct
?