### 事件的觸發
- 事件系統使用了觀察者模式,更好的方式解耦應用。在你需要的位置添加事件觸發代碼`$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
- 備忘錄
- 數據庫表