Neos\Flow\Security\RequestPattern\Host::matchRequest PHP Метод

matchRequest() публичный Метод

Matches a \Neos\Flow\Mvc\RequestInterface against its set host pattern rules
public matchRequest ( Neos\Flow\Mvc\RequestInterface $request ) : boolean
$request Neos\Flow\Mvc\RequestInterface The request that should be matched
Результат boolean TRUE if the pattern matched, FALSE otherwise
    public function matchRequest(RequestInterface $request)
    {
        if (!isset($this->options['hostPattern'])) {
            throw new InvalidRequestPatternException('Missing option "hostPattern" in the Host request pattern configuration', 1446224510);
        }
        if (!$request instanceof ActionRequest) {
            return false;
        }
        $hostPattern = str_replace('\\*', '.*', preg_quote($this->options['hostPattern'], '/'));
        return preg_match('/^' . $hostPattern . '$/', $request->getHttpRequest()->getUri()->getHost()) === 1;
    }

Usage Example

Пример #1
0
 /**
  * @dataProvider uriAndHostPatterns
  * @test
  */
 public function requestMatchingBasicallyWorks($uri, $pattern, $expected, $message)
 {
     $request = Request::create(new Uri($uri))->createActionRequest();
     $requestPattern = new Host(['hostPattern' => $pattern]);
     $this->assertEquals($expected, $requestPattern->matchRequest($request), $message);
 }