YurunPHP中支持定义事件、实现事件,有需要的话可以使用事件驱动开发或插件模式开发。
## 相关配置项
#### PLUGIN_FOLDER
插件目录文件夹名,默认为Plugin
## 插件机制
1、在项目配置目录中创建一个plugin.php
2、配置文件格式是一维数组,每个成员是字符串,代表插件名称
return array(
'Comment',
'UserGroup'
);
3、框架会根据常量APP_PLUGIN路径自动加载里面的插件。
4、插件入口是【项目目录/Plugin/插件名/插件名.php】,所有的绑定事件都写在这里面。
## 事件类方法
####定义事件
Event::trigger($event, &$params=array())
| 参数名 | 描述 |
| -- | -- |
| $event | 事件名称 |
| $params | 向处理事件的方法传递的参数 |
// 框架代码:框架初始化完成事件,无参数
Event::trigger('YURUN_frameWORK_LOAD_COMPLETE');
// 向处理事件的方法传递参数
$data = array('name'=>'宇润');
Event::trigger('EVENT_USER_LOGIN',$data);
####绑定事件
Event::register($event, $callback, $first=false)
| 参数名 | 描述 |
| -- | -- |
| $event | 事件名称 |
| $callback | 回调方法 |
| $first | 是否将该回调方法移到处理的首位 |
// 在框架加载完成时做一些事情
Event::register('YURUN_frameWORK_LOAD_COMPLETE', 'onYurunframeworkLoadComplete');
function onYurunframeworkLoadComplete()
{
echo '嘿嘿嘿!';
}
当然也支持闭包
// 在框架加载完成时做一些事情
Event::register('YURUN_frameWORK_LOAD_COMPLETE',
function()
{
echo '嘿嘿嘿!';
}
);



