php - Yii 附加事件

标签 php yii

在这个链接阅读 YIi 指南时:http://www.yiiframework.com/wiki/327/events-explained/ ,我看到了这一行:

...So earlier before raising the event we should have called, maybe inside the initialization method of the component, something like this:

$myComponent->onForestRan = array(new SomeOtherClass, 'eventHandler1');

我理解这段代码会为事件附加一个处理程序,左边的数组是一个PHP回调函数。然而,我真正不明白的是它的语法,它是否调用 onforestRan() 函数(之前在 $component 上定义--> 参见上面的 Yii 链接),如果是这样它将无效,因为它缺少 $事件参数。或者,如果它是一个回调,那么我从未见过像这样使用回调的方法(如果它是一个回调,其中 call_user_func() 或 usort()..)。它的语法对我来说真的很奇怪。 有人可以帮我吗? 非常感谢!

最佳答案

这不是回调本身,而是告诉 Yii 对事件执行什么操作(即什么函数)。

在给定的示例中,当 onForestRan 发生时,将触发 SomeOtherClass 中的 eventHandler1 函数。

当该页面描述回调时,它表示无论您分配给 $myComponent->onForestRan 的什么都需要是回调函数。回调不会在那个时候执行,你只是让 Yii 知道事件发生时使用哪个回调。

更多详情:

onForestRan 是$myComponent 的一个特殊属性,如documented here .更多详情可见CComponent .您可以搜索the CComponent source对于类似于 line 113 的行,您可以在其中看到特殊属性逻辑的​​开头。这与 Controller 中的 action* 方法非常相似。

关于php - Yii 附加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091278/

相关文章:

php - php.ini 配置文件位置和加载的配置文件之间的区别?

php - 自定义帖子类型事件菜单项

php - 如何停止向自己发送通知?

php - Yii2 Url::remember() 是如何工作的?

yii - 重定向到未经授权的用户的登录页面 yii

php - yii 形式问题

php - 帮助将时间戳字符串转换为可读的时间格式

php - session 过载 - PHP session 中存储的 "too much data"是什么?

yii - 如何使用 CActiveRecord 方法将数据库字段更新为其自身的函数而不实例化模型?

.htaccess - Yii 中用户友好的 URL