bootstrap 事件
bootstrap 事件允許在框架未初始化之前,先進行初始化其他需要的業務代碼。該事件是在 EasySwoole 3.2.5版本之后 新增的。
在框架安裝之后產生的 easyswoole 啟動腳本文件中,將會自動判斷框架根目錄下是否有 bootstrap.php 文件,如果有則加載此文件。
目前框架最新版本的 bootstrap.php(即 bootstrap 事件)會在框架安裝時在項目根目錄中自動生成。所以如果用戶想要執行自己需要的初始化業務代碼:如 注冊命令行支持、全局通用函數、啟動前調用協程 API等功能,就可以在 bootstrap.php 中進行編寫實現。
注:
EasySwoole 3.4.x版本之前bootstrap.php文件需要用戶在項目根目錄下自行創建該文件bootstrap.php。注:如果你是框架舊版升級到框架新版,需要刪除框架根目錄的
easyswoole文件,然后重新運行php ./vendor/easyswoole/easyswoole/bin/easyswoole install進行重新安裝(報錯或者其他原因請重新看 框架安裝章節-執行安裝步驟),重新安裝完成之后,即可正常使用bootstrap事件
在框架啟用前(在 bootstrap 事件中)調用協程 API
開發者在 EasySwoole 主服務啟動前調用協程 api,必須使用如下操作:
$scheduler = new \Swoole\Coroutine\Scheduler();
$scheduler->add(function() {
/* 調用協程API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();
具體使用示例如下:
<?php
// 全局 bootstrap 事件
date_default_timezone_set('Asia/Shanghai');
use Swoole\Coroutine\Scheduler;
$scheduler = new Scheduler();
$scheduler->add(function() {
/* 調用協程 API */
});
$scheduler->start();
// 清除全部定時器
\Swoole\Timer::clearAll();