/** * @param RequestContext $requestContext * @return bool */ public function isMatched(RequestContext $requestContext) { if (!empty($this->pathTemplate)) { if ($this->pathTemplate->match($requestContext->getPath(), $matchedParams)) { $this->storeDefaultParameters($matchedParams); } else { return false; } } if (!empty($this->hostTemplate)) { if ($this->hostTemplate->match($requestContext->getHost(), $matchedParams)) { $this->storeParameters($matchedParams); } else { return false; } } if (!empty($this->scheme)) { if (!in_array($requestContext->getScheme(), explode('|', $this->scheme))) { return false; } } if (!empty($this->method)) { if (!in_array(strtolower($requestContext->getMethod()), explode('|', $this->method))) { return false; } } return true; }
/** * */ public function testWithQuotedDefaultValueDefinition() { $template = new Template('/list/{page:\\d*:1}/'); $result = $template->match('/list/', $parameters); $this->assertTrue($result); $template = new Template('/list/{page:\\d*:\\:123\\{}/'); $parameters = array(); $template->match('/list/', $parameters); $this->assertArrayHasKey('page', $parameters); $this->assertEquals(':123{', $parameters['page']); $template = new Template('/:::/{page:[\\:]*:\\:}/'); $parameters = array(); $template->match('/:::/', $parameters); $this->assertArrayHasKey('page', $parameters); $this->assertEquals(':', $parameters['page']); }