本文整理汇总了PHP中Symfony\Component\Routing\Matcher\UrlMatcher::__construct方法的典型用法代码示例。如果您正苦于以下问题:PHP UrlMatcher::__construct方法的具体用法?PHP UrlMatcher::__construct怎么用?PHP UrlMatcher::__construct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Routing\Matcher\UrlMatcher
的用法示例。
在下文中一共展示了UrlMatcher::__construct方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* @param RouteCollection $routes The route collection
* @param RequestContext $context The request context
*/
public function __construct(RouteCollection $routes, RequestContext $context)
{
parent::__construct($routes, $context);
$this->routesCopy = $routes;
}
示例2: onKernelRequest
public function onKernelRequest(GetResponseEvent $event)
{
$request = $event->getRequest();
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
//we need to reset all routes. They will anyway replaced by FrontendRouter::loadRoutes,
//but to prevent caching conflicts, when a user removes a plugin for example
//from a page, we need to know that without using actual caching.
$this->routes = new RouteCollection();
$this->urlMatcher->__construct($this->routes, $this->requestContext);
//prepare for new master request: clear the PageResponse object
$this->pageStack->setCurrentPage(null);
$this->pageStack->setCurrentDomain(null);
$this->pageStack->setPageResponse($this->pageResponseFactory->create());
$this->frontendRouter->setRequest($request);
$editorNodeId = (int) $this->pageStack->getRequest()->get('_jarves_editor_node');
$editorDomainId = (int) $this->pageStack->getRequest()->get('_jarves_editor_domain');
$domain = null;
if ($editorDomainId) {
$domain = $this->pageStack->getDomain($editorDomainId);
if (!$domain) {
//we haven't found any domain that is responsible for this request
return;
}
$this->pageStack->setCurrentDomain($domain);
}
if ($editorNodeId) {
//handle jarves content editor stuff
//access is later checked
if (!$editorNodeId && $domain) {
$editorNodeId = $domain->getStartnodeId();
}
$page = $this->pageStack->getPage($editorNodeId);
if (!$page || !$page->isRenderable()) {
//we haven't found any page that is responsible for this request
return;
}
if (!$domain) {
$domain = $this->pageStack->getDomain($page->getDomainId());
}
$this->pageStack->setCurrentPage($page);
$this->pageStack->setCurrentDomain($domain);
$request->attributes->set('_controller', 'jarves.page_controller:handleAction');
} else {
//regular frontend route search
//search domain
if (!$domain) {
$domain = $this->frontendRouter->searchDomain();
if (!$domain) {
//we haven't found any domain that is responsible for this request
return;
}
$this->pageStack->setCurrentDomain($domain);
}
//search page
$page = $this->frontendRouter->searchPage();
if (!$page || !$page->isRenderable()) {
//we haven't found any page that is responsible for this request
return;
}
$this->pageStack->setCurrentPage($page);
if ($response = $this->frontendRouter->loadRoutes($this->routes, $page)) {
//loadRoutes return in case of redirects and permissions a redirect or 404 response.
$event->setResponse($response);
return;
}
try {
//check routes in $this->route
parent::onKernelRequest($event);
} catch (MethodNotAllowedException $e) {
} catch (NotFoundHttpException $e) {
}
}
}
}