Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.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
namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
13
 
14
use Symfony\Component\HttpFoundation\RequestStack;
15
use Symfony\Component\VarDumper\Caster\ReflectionCaster;
16
use Symfony\Component\VarDumper\Cloner\VarCloner;
17
 
18
/**
19
 * Tries to provide context from a request.
20
 *
21
 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
22
 */
23
final class RequestContextProvider implements ContextProviderInterface
24
{
25
    private RequestStack $requestStack;
26
    private VarCloner $cloner;
27
 
28
    public function __construct(RequestStack $requestStack)
29
    {
30
        $this->requestStack = $requestStack;
31
        $this->cloner = new VarCloner();
32
        $this->cloner->setMaxItems(0);
33
        $this->cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
34
    }
35
 
36
    public function getContext(): ?array
37
    {
38
        if (null === $request = $this->requestStack->getCurrentRequest()) {
39
            return null;
40
        }
41
 
42
        $controller = $request->attributes->get('_controller');
43
 
44
        return [
45
            'uri' => $request->getUri(),
46
            'method' => $request->getMethod(),
47
            'controller' => $controller ? $this->cloner->cloneVar($controller) : $controller,
48
            'identifier' => spl_object_hash($request),
49
        ];
50
    }
51
}