#### 事件绑定
~~~php
use lying\db\ActiveRecord;
use lying\service\Event;
Event::on(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE, function (Event $event) {
var_dump($event->_sender);
}, '绑定时的额外数据');
//事件默认是插入到队列的结尾的,如果要把事件插入到队列首位
Event::on(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE, function (Event $event) {
var_dump($event->_sender);
}, '绑定时的额外数据', false);
~~~
#### 触发事件
~~~php
use lying\db\ActiveRecord;
use lying\service\Event;
Event::trigger(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE);
Event::trigger(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE, new Event());
~~~
#### 卸载事件
~~~php
use lying\db\ActiveRecord;
use lying\service\Event;
$call = function (Event $event) {
}
//卸载指定事件
Event::off(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE, $call);
//卸载所有事件
Event::off(ActiveRecord::class, ActiveRecord::EVENT_BEFORE_DELETE);
~~~
### 总结
* 事件的触发顺序是和绑定顺序一致的
* 如果有一个事件的函数返回了false或者设置`$event->stop = false;` 则后面的事件就都不再执行
- 序言
- 更新日志
- 安装
- 规范
- 常量
- 配置
- 自动加载
- MVC
- 模块
- 控制器
- 模型
- 视图
- php原生模板
- 模板引擎
- 变量输出
- 模板注释
- 模板继承
- 模板引用
- 流程控制
- 原样输出
- 服务组件
- Hook组件
- Request组件
- Router组件
- Cookie组件
- Encrypter组件
- Dispatch组件
- Response组件
- View组件
- Session组件
- Helper组件
- 数据分页
- 数据验证
- Logger组件
- Cache组件
- Redis组件
- Connection组件
- 执行sql语句
- 查询生成器
- 查询方法详解
- Schema
- Captcha组件
- CLI
- CLI工具
- 事件
- 类事件
- 实例事件
- 全局事件
- 助手函数
- 扩展
- 异常
- 部署
- Apache
- Nginx
- IIS
- 虚拟主机