Whoops
Easyswoole 提供了Whoops驅(qū)動,用于開發(fā)階段,友好的排除HTTP業(yè)務(wù)的錯誤與異常。
切勿用于生產(chǎn)階段,否則造成代碼泄露EasySwoole不負任何責任!!!
組件要求
- 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
倉庫地址
基本使用
直接在 EasySwoole
全局事件中進行注冊
<?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 {
// 攔截請求
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()); // 輸出一個漂亮的頁面
$whoops->pushHandler(new \EasySwoole\Whoops\Handler\CallbackHandler(function ($exception, $inspector, $run, $handle) {
// 可以推進多個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)過上面配置完成之后,就可以在框架拋出異常時,輸出一個漂亮的異常頁面。