match() 공개 메소드

Performs SiteAccess matching given the $request.
public match ( SimplifiedRequest $request ) : SiteAccess
$request eZ\Publish\Core\MVC\Symfony\Routing\SimplifiedRequest
리턴 eZ\Publish\Core\MVC\Symfony\SiteAccess
 /**
  * @depends testConstruct
  * @dataProvider matchProvider
  */
 public function testMatch(SimplifiedRequest $request, $siteAccess, Router $router)
 {
     $sa = $router->match($request);
     $this->assertInstanceOf('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess', $sa);
     $this->assertSame($siteAccess, $sa->name);
     $router->setSiteAccess();
 }
 /**
  * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     // We have a serialized siteaccess object from a fragment (sub-request), we need to get it back.
     if ($request->attributes->has('serialized_siteaccess')) {
         $request->attributes->set('siteaccess', unserialize($request->attributes->get('serialized_siteaccess')));
         $request->attributes->remove('serialized_siteaccess');
     } else {
         if (!$request->attributes->has('siteaccess')) {
             $request->attributes->set('siteaccess', $this->siteAccessRouter->match(new SimplifiedRequest(array('scheme' => $request->getScheme(), 'host' => $request->getHost(), 'port' => $request->getPort(), 'pathinfo' => $request->getPathInfo(), 'queryParams' => $request->query->all(), 'languages' => $request->getLanguages(), 'headers' => $request->headers->all()))));
         }
     }
     $siteaccess = $request->attributes->get('siteaccess');
     if ($siteaccess instanceof SiteAccess) {
         $siteAccessEvent = new PostSiteAccessMatchEvent($siteaccess, $request, $event->getRequestType());
         $this->eventDispatcher->dispatch(MVCEvents::SITEACCESS, $siteAccessEvent);
     }
 }
예제 #3
0
 /**
  * @param \eZ\Publish\Core\MVC\Symfony\SiteAccess\Router $router
  *
  * @depends testConstruct
  */
 public function testMatchWithRequestHeader(Router $router)
 {
     $saName = 'headerbased_sa';
     $request = Request::create('/foo/bar');
     $request->headers->set('X-Siteaccess', $saName);
     $sa = $router->match(new SimplifiedRequest(array('headers' => $request->headers->all())));
     $this->assertInstanceOf('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess', $sa);
     $this->assertSame($saName, $sa->name);
     $this->assertSame('header', $sa->matchingType);
     $router->setSiteAccess();
 }
 /**
  * @param Request $request
  *
  * @return SiteAccess
  */
 private function getSiteAccessFromRequest(Request $request)
 {
     return $this->siteAccessRouter->match(new SimplifiedRequest(array('scheme' => $request->getScheme(), 'host' => $request->getHost(), 'port' => $request->getPort(), 'pathinfo' => $request->getPathInfo(), 'queryParams' => $request->query->all(), 'languages' => $request->getLanguages(), 'headers' => $request->headers->all())));
 }