2 Star 4 Fork 2

承德讯洲信息科技有限公司/daxiong-system

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
EasySwooleEvent.php 2.96 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
declare(strict_types=1);
/**
* EasySwooleEvent.php
* Company: 承德讯洲信息科技有限公司
* User: lizhiqiang
* Project: tianshu-system
*
* @desc: 主服务创建事件
*/
namespace EasySwoole\EasySwoole;
use Core\Exception\TriggerHandler;
use Core\Init\App;
use Core\Init\Config as SysConfig;
use Core\Init\Crontab;
use Core\Init\CrossSite;
use Core\Init\FastCache;
use Core\Init\HotLoad;
use Core\Init\Orm;
use Core\Init\Point;
use Core\Init\Queue;
use Core\Init\Redis;
use Core\Init\Render;
use Core\Init\Route;
use Core\Init\Session;
use Core\Init\WebSocket;
use Core\Log\LogHandler;
use EasySwoole\Component\Di;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
class EasySwooleEvent implements Event
{
/**
* 初始化框架相关参数
*
* @throws \EasySwoole\Session\Exception
*/
public static function initialize()
{
// 设置时区
date_default_timezone_set('Asia/Shanghai');
//配置初始化
SysConfig::init();
//设置默认控制器命名空间
Route::init();
// 注册 trigger
Trigger::getInstance(new TriggerHandler());
// 注册自定义 `logger` 处理器
Di::getInstance()->set(SysConst::LOGGER_HANDLER, new LogHandler());
// 设置onRequest参数
Di::getInstance()->set(SysConst::HTTP_GLOBAL_ON_REQUEST, function (Request $request, Response $response) {
// 跨域处理
CrossSite::handle($request, $response);
if ($request->getMethod() === 'OPTIONS') {
$response->withStatus(\EasySwoole\Http\Message\Status::CODE_OK);
return false;
}
// 注册session
Session::register($request, $response);
// 链路追踪
Point::register($request);
return true;
});
// 设置afterRequest参数
Di::getInstance()->set(SysConst::HTTP_GLOBAL_AFTER_REQUEST, function (Request $request, Response $response) {
if ($request->getMethod() !== 'OPTIONS') {
// session写入
Session::write($request);
//链路追踪写入
// Point::log($request, $response);
}
});
}
/**
* 主服务创建事件
*
* @param EventRegister $register
*/
public static function mainServerCreate(EventRegister $register)
{
//ORM的连接注册
Orm::init();
//Redis连接池注册
Redis::init();
// 热重载
HotLoad::init();
// fast-cache
FastCache::init();
// 定时任务注册
Crontab::init();
// 注册队列驱动器
Queue::init();
// 注册websocket
WebSocket::init($register);
//注册渲染引擎
Render::init();
//应用初始化
App::init();
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/leubao/daxiong-system.git
[email protected]:leubao/daxiong-system.git
leubao
daxiong-system
daxiong-system
master

搜索帮助