助手的Cakephp组件启动

助手的Cakephp组件启动,cakephp,Cakephp,是否有一些替代方法可以在帮助程序中使用,类似于在组件中启动。实际上,我需要在helper方法调用之前设置一些设置,它基于被调用的方法。因此,我需要检测调用了哪个方法,并设置我需要的内容,这些内容将在helper方法本身中使用 蛋糕2.x 乌德帕特 helper的构造函数相当于组件的initialize方法,而不是startup,例如,当我将其放入helper中时 public function __construct($View, $settings = array()) { paren

是否有一些替代方法可以在帮助程序中使用,类似于在组件中启动。实际上,我需要在helper方法调用之前设置一些设置,它基于被调用的方法。因此,我需要检测调用了哪个方法,并设置我需要的内容,这些内容将在helper方法本身中使用

蛋糕2.x

乌德帕特

helper的构造函数相当于组件的initialize方法,而不是startup,例如,当我将其放入helper中时

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,构造函数类似于初始化,而不是启动,请参阅更新的问题。谢谢