• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tempestphp / tempest-framework / 14276744446

04 Apr 2025 12:33PM UTC coverage: 80.906% (-0.2%) from 81.07%
14276744446

push

github

web-flow
feat(core): display more data in default error handler (#1116)

0 of 31 new or added lines in 2 files covered. (0.0%)

11178 of 13816 relevant lines covered (80.91%)

103.2 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Tempest/Core/src/Exceptions/WhoopsErrorHandler.php
1
<?php
2

3
namespace Tempest\Core\Exceptions;
4

5
use Tempest\Container\Container;
6
use Tempest\Router\MatchedRoute;
7
use Tempest\Router\Request;
8
use Whoops\Handler\HandlerInterface;
9
use Whoops\Handler\PrettyPageHandler;
10
use Whoops\Run;
11

12
final readonly class WhoopsErrorHandler
13
{
NEW
14
    public function __construct(
×
15
        private Container $container,
NEW
16
    ) {}
×
17

NEW
18
    public function register(): void
×
19
    {
NEW
20
        $whoops = new Run();
×
NEW
21
        $whoops->pushHandler($this->createHandler());
×
NEW
22
        $whoops->register();
×
23
    }
24

NEW
25
    private function createHandler(): HandlerInterface
×
26
    {
NEW
27
        $handler = new PrettyPageHandler();
×
28

NEW
29
        $handler->addDataTableCallback('Route', function () {
×
NEW
30
            $route = $this->container->get(MatchedRoute::class);
×
31

NEW
32
            if (! $route) {
×
NEW
33
                return [];
×
34
            }
35

NEW
36
            return [
×
NEW
37
                'Handler' => $route->route->handler->getDeclaringClass()->getFileName() . ':' . $route->route->handler->getName(),
×
NEW
38
                'URI' => $route->route->uri,
×
NEW
39
                'Allowed parameters' => $route->route->parameters,
×
NEW
40
                'Received parameters' => $route->params,
×
NEW
41
            ];
×
NEW
42
        });
×
43

NEW
44
        $handler->addDataTableCallback('Request', function () {
×
NEW
45
            $request = $this->container->get(Request::class);
×
46

NEW
47
            return [
×
NEW
48
                'URI' => $request->uri,
×
NEW
49
                'Method' => $request->method->value,
×
NEW
50
                'Headers' => $request->headers->toArray(),
×
NEW
51
                'Parsed body' => array_filter(array_values($request->body)) ? $request->body : [],
×
NEW
52
                'Raw body' => $request->raw,
×
NEW
53
            ];
×
NEW
54
        });
×
55

NEW
56
        return $handler;
×
57
    }
58
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc