在此链接上阅读 YIi 指南时: http://www.yiiframework.com/wiki/327/events-explained/ ,我看到了这一行:
$myComponent->onForestRan = array(new SomeOtherClass, 'eventHandler1');
我知道这段代码将一个处理程序附加到事件,左侧的数组是一个 PHP 回调函数。但是,我真正不明白的是它的语法,它是否调用了 onforestRan() 函数(之前在 $component 上定义--> 参见上面的 Yii 链接),如果是这样,它将无效,因为它缺少 $事件参数。或者,如果它是一个回调,那么我从未见过像这样使用回调的方法(如果它是一个回调,其中 call_user_func() 或 usort()..)。它的语法对我来说真的很奇怪。
有人可以帮我解决这个问题吗?
非常感谢!
最佳答案
它不是回调本身,而是告诉 Yii 对事件执行什么操作(即什么函数)。
在给出的示例中,当 onForestRan
发生时,将触发 eventHandler1
中的 SomeOtherClass
函数。
当该页面描述回调时,它表示您分配给 $myComponent->onForestRan
的任何内容都需要是回调函数。回调不会在那个时候执行,你只是让 Yii 知道在事件发生时使用哪个回调。
更多细节:
onForestRan 是 $myComponent 的一个特殊属性,如 documented here 。更多细节可以在 CComponent 中看到。您可以在 the CComponent source 中搜索类似于 line 113 的行,您可以在其中看到特殊属性逻辑的开头。这与 Controller 中的 action*
方法非常相似。
关于php - Yii attach 事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12091278/