ResetVarDumper.php 848 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace think\swoole\middleware;
  3. use Closure;
  4. use Symfony\Component\VarDumper\Caster\ReflectionCaster;
  5. use Symfony\Component\VarDumper\Cloner\VarCloner;
  6. use Symfony\Component\VarDumper\Dumper\HtmlDumper;
  7. use Symfony\Component\VarDumper\VarDumper;
  8. use think\Request;
  9. class ResetVarDumper
  10. {
  11. protected $cloner;
  12. public function __construct()
  13. {
  14. $this->cloner = new VarCloner();
  15. $this->cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
  16. }
  17. public function handle(Request $request, Closure $next)
  18. {
  19. $prevHandler = VarDumper::setHandler(function ($var) {
  20. $dumper = new HtmlDumper();
  21. $dumper->dump($this->cloner->cloneVar($var));
  22. });
  23. $response = $next($request);
  24. VarDumper::setHandler($prevHandler);
  25. return $response;
  26. }
  27. }