public matchRequest ( Neos\Flow\Mvc\RequestInterface $request ) : boolean | ||
$request | Neos\Flow\Mvc\RequestInterface | The request that should be matched |
return | 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;
}
/** * @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); }