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\HttpFoundation\RequestMatcher;
13
 
14
use Symfony\Component\HttpFoundation\Request;
15
use Symfony\Component\HttpFoundation\RequestMatcherInterface;
16
 
17
/**
18
 * Checks the Request attributes matches all regular expressions.
19
 *
20
 * @author Fabien Potencier <fabien@symfony.com>
21
 */
22
class AttributesRequestMatcher implements RequestMatcherInterface
23
{
24
    /**
25
     * @param array<string, string> $regexps
26
     */
27
    public function __construct(private array $regexps)
28
    {
29
    }
30
 
31
    public function matches(Request $request): bool
32
    {
33
        foreach ($this->regexps as $key => $regexp) {
34
            $attribute = $request->attributes->get($key);
35
            if (!\is_string($attribute)) {
36
                return false;
37
            }
38
            if (!preg_match('{'.$regexp.'}', $attribute)) {
39
                return false;
40
            }
41
        }
42
 
43
        return true;
44
    }
45
}