### 事件的触发
- 事件系统使用了观察者模式,更好的方式解耦应用。在你需要的位置添加事件触发代码`$this->app->event->trigger('UserLogin')`
- 事件类可通过命令行快速生成`php think make:event UserLogin`,默认会生成`app\event\UserLogin`事件类,也可以指定完整的类名生成
- 事件系统不依赖事件类,一般没有额外的需求,仅通过事件标识就可以使用事件系统,省去定义事件类的麻烦
- 通过event的trigger方法的第二个参数,可以传递参数到事件监听中。
### 事件的监听
- 可手动注册事件监听
```
// 闭包函数来监听事件
$this->app->event->listen('UserLogin', function($user) {
....
})
// 事件监听类来监听事件
$this->app->event->listen('UserLogin', 'app\listener\UserLogin')
```
- 在事件的定义文件中注册事件监听`event.php`文件的`listen`属性
```
return [
'bind' => [...]
'listen' => [
'UserLogin' => ['app\listen\UserLogin', ...],
]
];
```
- 可通过命令行快速生成事件监听`php think make:listener UserLogin`
- 事件监听类只需要定义一个handle方法。如果handle返回false,则表示终止,将不再执行该事件后面的监听。
### 事件的订阅
- 通过事件订阅机制,可在一个监听器中监听多个事件。
- 通过命令行快速生成事件订阅类`php think make:subscribe User`
- 可在事件订阅类中添加不同的事件的监听方法,事件监听的方法命名规范是on+事件标识,驼峰命名。
- 在事件定义文件中注册事件的订阅`event.php`文件的`subscribe`属性
- 可动态注册`$this->app->event->subscribe('app\subscribe\User')`
- linux 基础
- ln 链接
- linux 环境变量
- linux 进程查看
- nginx
- redis
- redis 安装
- php 底层原理
- php源码编译安装
- phpize文件
- php命令行
- php7 新特性
- php7 变量
- php7 生命周期
- php sapi运行模式
- php 内存管理
- php 运行机制和Zend虚拟机
- php垃圾回收
- php 基础
- php.ini
- php函数
- 面向对象
- php 文件上传
- ob缓冲和页面静态化
- php中的session
- php cURL扩展
- composer 应用
- php 错误和异常
- thinkphp
- tp6容器和依赖注入
- tp6 的服务
- tp6事件
- tp6 多应用
- tp6路由
- tp6 cache
- tp6 request
- tp6 中间件
- tp6 response
- tp6 Db
- 备忘录
- 数据库表