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