当前位置: 首页>>代码示例>>PHP>>正文


PHP RouterInterface::matchRequest方法代码示例

本文整理汇总了PHP中Symfony\Component\Routing\RouterInterface::matchRequest方法的典型用法代码示例。如果您正苦于以下问题:PHP RouterInterface::matchRequest方法的具体用法?PHP RouterInterface::matchRequest怎么用?PHP RouterInterface::matchRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\Routing\RouterInterface的用法示例。


在下文中一共展示了RouterInterface::matchRequest方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: matchRequest

 /**
  * {@inheritdoc}
  */
 public function matchRequest(Request $request)
 {
     if (!$this->router instanceof RequestMatcherInterface) {
         throw new \BadMethodCallException('Router has to implement the ' . RequestMatcherInterface::class);
     }
     return $this->router->matchRequest($request);
 }
开发者ID:xabbuh,项目名称:http-bundle,代码行数:10,代码来源:ParameterResolvingRouter.php

示例2: getTranslationRoute

 /**
  * Returns the corresponding route of the given URL for the locale supplied
  * If none is found it returns the original route object
  *
  * @param $oldUrl
  * @param $locale
  * @return array|\Networking\InitCmsBundle\Component\Routing\Route
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function getTranslationRoute($oldUrl, $locale)
 {
     $cookies = $this->request->cookies ? $this->request->cookies->all() : array();
     $oldRequest = Request::create($oldUrl, 'GET', array(), $cookies);
     if ($this->request->getSession()) {
         $oldRequest->setSession($this->request->getSession());
     }
     try {
         $request = $this->pageHelper->matchContentRouteRequest($oldRequest);
     } catch (ResourceNotFoundException $e) {
         $request = $oldRequest;
     }
     if (!($content = $request->get('_content', false))) {
         try {
             $route = $this->router->matchRequest(Request::create($oldUrl));
         } catch (ResourceNotFoundException $e) {
             if ($route = $this->router->matchRequest(Request::create('/404'))) {
                 return $route;
             }
             throw new NotFoundHttpException(sprintf('Could not find a translation to "%s" for this request"', $locale));
         }
         if (!array_key_exists('_content', $route)) {
             return $route;
         }
         if (!($content = $route['_content'])) {
             return $route;
         }
     }
     if ($content instanceof PageInterface) {
         $translation = $content->getAllTranslations()->get($locale);
         if (is_null($translation)) {
             //@todo does this make sense, or should we throw an exception
             return array('_route' => 'networking_init_cms_home');
         }
         //return a contentRoute object
         $contentRoute = $translation->getContentRoute()->setContent($translation);
         return ContentRouteManager::generateRoute($contentRoute, $contentRoute->getPath(), '');
     }
     if ($content instanceof PageSnapshotInterface) {
         $content = $this->pageHelper->unserializePageSnapshotData($content);
         $translation = $content->getAllTranslations()->get($locale);
         if ($translation && ($snapshotId = $translation->getId())) {
             /** @var $snapshot PageSnapshotInterface */
             $snapshot = $this->om->getRepository($content->getSnapshotClassType())->findOneBy(array('resourceId' => $snapshotId));
             if ($snapshot) {
                 $contentRoute = $snapshot->getRoute();
                 return ContentRouteManager::generateRoute($contentRoute, $contentRoute->getPath(), '');
             }
         }
     }
     if ($this->fallbackRoute) {
         return $this->fallbackRoute;
     }
     if ($route = $this->router->matchRequest(Request::create('/404'))) {
         return $route;
     }
     //no valid translation found
     throw new NotFoundHttpException(sprintf('Could not find a translation to "%s" for content "%s"', $locale, $content->__toString()));
 }
开发者ID:networking,项目名称:init-cms-bundle,代码行数:68,代码来源:LanguageSwitcherHelper.php

示例3: getTranslationRoute

 /**
  * Returns the corresponding route of the given URL for the locale supplied
  * If none is found it returns the original route object
  *
  * @param $oldUrl
  * @param $locale
  * @return array|\Networking\InitCmsBundle\Entity\ContentRoute
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function getTranslationRoute($oldUrl, $locale)
 {
     /** @var $router RouterInterface */
     $route = $this->router->matchRequest(Request::create($oldUrl));
     if (!array_key_exists('_content', $route)) {
         return $route;
     }
     $content = $route['_content'];
     if ($content instanceof PageInterface) {
         $translation = $content->getAllTranslations()->get($locale);
         if (is_null($translation)) {
             //@todo does this make sense, or should we throw an exception
             return array('_route' => 'networking_init_cms_home');
         }
         //return a contentRoute object
         return $translation->getContentRoute()->setContent($translation);
     }
     if ($content instanceof PageSnapshotInterface) {
         $content = $this->serializer->deserialize($content->getVersionedData(), $this->pageManager->getClassName(), 'json');
         $translation = $content->getAllTranslations()->get($locale);
         if ($translation && ($snapshotId = $translation->getId())) {
             /** @var $snapshot PageSnapshotInterface */
             $snapshot = $this->om->getRepository($content->getSnapshotClassType())->findOneBy(array('resourceId' => $snapshotId));
             if ($snapshot) {
                 //return a contentRoute object
                 return $snapshot->getRoute();
             }
         }
     }
     if ($this->fallbackRoute) {
         return $this->fallbackRoute;
     }
     if ($route = $this->router->matchRequest(Request::create('/404'))) {
         return $route;
     }
     //no valid translation found
     throw new NotFoundHttpException(sprintf('Could not find a translation to "%s" for content "%s"', $locale, $content->__toString()));
 }
开发者ID:lzdv,项目名称:init-cms-bundle,代码行数:47,代码来源:LanguageSwitcherHelper.php


注:本文中的Symfony\Component\Routing\RouterInterface::matchRequest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。