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

api-platform / core / 15186284751

22 May 2025 12:14PM UTC coverage: 27.348%. Remained the same
15186284751

push

github

soyuka
docs: changelog 4.1.10

13482 of 49298 relevant lines covered (27.35%)

74.57 hits per line

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

75.0
/src/Symfony/EventListener/ExceptionListener.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\Symfony\EventListener;
15

16
use ApiPlatform\Metadata\Error;
17
use ApiPlatform\State\Util\RequestAttributesExtractor;
18
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
19
use Symfony\Component\HttpKernel\EventListener\ErrorListener;
20

21
/**
22
 * Handles requests errors.
23
 *
24
 * @author Samuel ROZE <samuel.roze@gmail.com>
25
 * @author Kévin Dunglas <dunglas@gmail.com>
26
 */
27
final class ExceptionListener
28
{
29
    public function __construct(private readonly ErrorListener $errorListener, public bool $handleSymfonyErrors = false)
30
    {
31
    }
2,042✔
32

33
    public function onKernelException(ExceptionEvent $event): void
34
    {
35
        $request = $event->getRequest();
230✔
36

37
        // Normalize exceptions only for routes managed by API Platform
38
        if (
39
            false === $this->handleSymfonyErrors
230✔
40
            && !((RequestAttributesExtractor::extractAttributes($request)['respond'] ?? $request->attributes->getBoolean('_api_respond', false)) || $request->attributes->getBoolean('_graphql', false))
230✔
41
        ) {
42
            return;
×
43
        }
44

45
        // Don't loop on errors leave it to Symfony as we could not handle this properly
46
        if (($operation = $request->attributes->get('_api_operation')) && $operation instanceof Error) {
230✔
47
            return;
×
48
        }
49

50
        $this->errorListener->onKernelException($event);
230✔
51
    }
52
}
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