CakePHP:为插件创建动作钩子

时间:2013-06-04 15:07:45

标签: php cakephp plugins cakephp-2.0 cakephp-2.1

我想包含类似于Wordpress中的动作挂钩。我已经阅读了关于编写插件的章节,但是我能够在不改变父应用程序中的代码的情况下维护它们。

有没有对此的支持?

如果没有,有没有好方法呢?我有一些想法,但我担心我会重新发明轮子。

2 个答案:

答案 0 :(得分:4)

是的。

CakePHP Event System

它很像WordPress的钩子,但只是更好。

您可以在不同的地方注册回调,但简单的方法是在插件的bootstrap.php中执行此操作。

当应用程序加载插件时,它可以告诉CakePHP引导它。这是通过此命令完成的。

CakePlugin::loadAll(array(array('bootstrap'=>true,'routes'=>true)));

答案 1 :(得分:2)

我不确定你要做什么,但你可以这样做:

你的控制器beforeFilter()方法是创建某些钩子的好地方:

public function beforeFilter() {
    parent::beforeFilter();  // don't forget to call parent code
    $myHandler->doSomethingInteresting( $this->name, $this->action );
}

其中$this->name将为您提供被调用控制器的名称,$this->action将为您提供当前操作的名称。

我希望它有所帮助。