YurunPHP中支持定义事件、实现事件,有需要的话可以使用事件驱动开发或插件模式开发。
## 相关配置项
#### PLUGIN_FOLDER
插件目录文件夹名,默认为Plugin
## 插件机制
1、在项目配置目录中创建一个plugin.php
2、配置文件格式是一维数组,每个成员是字符串,代表插件名称
~~~
<?php
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 '嘿嘿嘿!';
}
);
~~~
- 序言
- 有些话想说
- 基础入门
- 简介
- 下载YurunPHP
- 运行环境
- 开发规范
- 目录结构
- 模块
- 控制器
- 项目配置
- 入口文件
- 项目目录结构
- 配置文件
- 框架编译
- 项目部署
- 控制器
- 创建控制器
- 加载模版显示页面
- AJAX返回数据
- 模型
- 创建模型
- 实例化模型
- 数据管理
- 连贯操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 连贯操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合计函数
- save
- 执行SQL语句
- 创建数据并验证
- 字段映射
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 数据库操作
- 配置文件
- 常用操作
- 查询记录
- 存储过程
- 数据库函数
- MSSQL
- 视图
- 调用视图
- 给视图传值
- 模版引擎
- 输出
- 使用PHP代码
- 模版标签
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- 模版常量替换
- 自定义控件
- 通用属性用法
- 数据集绑定
- 下拉框(select)
- 单选框(radio)
- 单选框组(radiogroup)
- 选择框(checkbox)
- 选择框组(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分页条(pagebar)
- 数据验证
- 验证方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定义分层
- 缓存
- 文件缓存
- 配置
- PHP数组配置
- 过滤域名
- 日志
- 文件日志
- 事件&插件机制
- 框架事件列表
- 多语言支持
- 定时任务
- API接口开发