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();