Whoops
Easyswoole 提供了Whoops驅(qū)動(dòng),用于開(kāi)發(fā)階段,友好的排除HTTP業(yè)務(wù)的錯(cuò)誤與異常。
切勿用于生產(chǎn)階段,否則造成代碼泄露EasySwoole不負(fù)任何責(zé)任!!!
組件要求
- easyswoole/component: ^2.0
- easyswoole/spl: ^1.1
- easyswoole/template: ^1.0
- easyswoole/utility: ^1.0
- psr/log: ^1.0.1
安裝方法
composer require easyswoole/easy-whoops=3.x
倉(cāng)庫(kù)地址
基本使用
直接在 EasySwoole
全局事件中進(jìn)行注冊(cè)
<?php
namespace EasySwoole\EasySwoole;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
class EasySwooleEvent implements Event
{
public static function initialize()
{
// TODO: Implement initialize() method.
date_default_timezone_set('Asia/Shanghai');
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response): bool {
// 攔截請(qǐng)求
if (\EasySwoole\EasySwoole\Core::getInstance()->runMode() == 'dev') {
\EasySwoole\Whoops\Run::attachRequest($request, $response);
}
return true;
});
if (\EasySwoole\EasySwoole\Core::getInstance()->runMode() == 'dev') {
$whoops = new \EasySwoole\Whoops\Run();
$whoops->pushHandler(new \EasySwoole\Whoops\Handler\PrettyPageHandler()); // 輸出一個(gè)漂亮的頁(yè)面
$whoops->pushHandler(new \EasySwoole\Whoops\Handler\CallbackHandler(function ($exception, $inspector, $run, $handle) {
// 可以推進(jìn)多個(gè)Handle 支持回調(diào)做更多后續(xù)處理
}));
$whoops->register();
}
}
public static function mainServerCreate(EventRegister $register)
{
if (\EasySwoole\EasySwoole\Core::getInstance()->runMode() == 'dev') {
\EasySwoole\Whoops\Run::attachTemplateRender(ServerManager::getInstance()->getSwooleServer());
}
}
}
經(jīng)過(guò)上面配置完成之后,就可以在框架拋出異常時(shí),輸出一個(gè)漂亮的異常頁(yè)面。