助手的Cakephp组件启动
是否有一些替代方法可以在帮助程序中使用,类似于在组件中启动。实际上,我需要在helper方法调用之前设置一些设置,它基于被调用的方法。因此,我需要检测调用了哪个方法,并设置我需要的内容,这些内容将在helper方法本身中使用 蛋糕2.x 乌德帕特 helper的构造函数相当于组件的initialize方法,而不是startup,例如,当我将其放入helper中时助手的Cakephp组件启动,cakephp,Cakephp,是否有一些替代方法可以在帮助程序中使用,类似于在组件中启动。实际上,我需要在helper方法调用之前设置一些设置,它基于被调用的方法。因此,我需要检测调用了哪个方法,并设置我需要的内容,这些内容将在helper方法本身中使用 蛋糕2.x 乌德帕特 helper的构造函数相当于组件的initialize方法,而不是startup,例如,当我将其放入helper中时 public function __construct($View, $settings = array()) { paren
public function __construct($View, $settings = array()) {
parent::__construct($View);
echo "test";die;
}
并将助手包括在我的助手列表中,然后打开一个不包含该助手的任何方法调用的页面,毕竟我看到了测试的响应。但我只需要在有方法调用时响应它,这类似于组件的启动,而不是初始化
感谢Controller::startup的工作方式与您描述的不同,无论您是否调用组件的方法,都会调用startup,因此helpers构造函数与此类似
无论如何,如果您需要在特定的方法调用之前做一些事情,但不想在方法本身中实现它,那么请实现受保护的方法,并使用magic _调用处理程序来执行您需要事先执行的任何操作,并调用实际的方法
差不多
public function __call($method, $params) {
switch($method) {
case 'foo':
// do something special before _foo()
break;
case 'bar':
// do something special before _bar()
break;
// ...
default:
parent::__call($method, $params);
return;
}
return call_user_func_array(array($this, '_' . $method), $params);
}
protected function _foo($foo, $bar) {
// ...
}
protected function _bar($bar, $foo) {
// ...
}
有关更多信息,请参阅。@burzum,nop,构造函数类似于初始化,而不是启动,请参阅更新的问题。谢谢