Whoops

Easyswoole 提供了Whoops驱动,用于开发阶段,友好的排除HTTP业务的错误与异常。

Whoops - 图1

::: warning 切勿用于生产阶段,否则造成代码泄露EasySwoole不负任何责任!!! :::

安装

  1. composer require easyswoole/easy-whoops=3.x

使用

直接在EasySwoole 全局的事件中进行注册

  1. use EasySwoole\EasySwoole\Swoole\EventRegister;
  2. use EasySwoole\EasySwoole\AbstractInterface\Event;
  3. use EasySwoole\Http\Request;
  4. use EasySwoole\Http\Response;
  5. use EasySwoole\Whoops\Handler\CallbackHandler;
  6. use EasySwoole\Whoops\Handler\PrettyPageHandler;
  7. use EasySwoole\Whoops\Run;
  8. class EasySwooleEvent implements Event
  9. {
  10. public static function initialize()
  11. {
  12. // TODO: Implement initialize() method.
  13. date_default_timezone_set('Asia/Shanghai');
  14. $whoops = new Run();
  15. $whoops->pushHandler(new PrettyPageHandler); // 输出一个漂亮的页面
  16. $whoops->pushHandler(new CallbackHandler(function ($exception, $inspector, $run, $handle) {
  17. // 可以推进多个Handle 支持回调做更多后续处理
  18. }));
  19. $whoops->register();
  20. }
  21. public static function mainServerCreate(EventRegister $register)
  22. {
  23. Run::attachTemplateRender(ServerManager::getInstance()->getSwooleServer());
  24. }
  25. public static function onRequest(Request $request, Response $response): bool
  26. {
  27. //拦截请求
  28. Run::attachRequest($request, $response);
  29. return true;
  30. }
  31. public static function afterRequest(Request $request, Response $response): void
  32. {
  33. // TODO: Implement afterAction() method.
  34. }
  35. }