2

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

对此有任何支持吗?

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

4

2 回答 2

4

就在这里。

CakePHP 事件系统

它的工作原理很像 WordPress 的钩子,但效果更好。

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

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

CakePlugin::loadAll(array(array('bootstrap'=>true,'routes'=>true)));
于 2013-06-04T15:24:10.000 回答
2

我不确定您要完成什么,但是您可以执行以下操作:

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

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

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

我希望它有一点帮助。

于 2013-06-04T15:27:37.807 回答