當前位置: 首頁>>代碼示例>>PHP>>正文


PHP EventInterface::getRouteMatch方法代碼示例

本文整理匯總了PHP中Zend\EventManager\EventInterface::getRouteMatch方法的典型用法代碼示例。如果您正苦於以下問題:PHP EventInterface::getRouteMatch方法的具體用法?PHP EventInterface::getRouteMatch怎麽用?PHP EventInterface::getRouteMatch使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Zend\EventManager\EventInterface的用法示例。


在下文中一共展示了EventInterface::getRouteMatch方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: onRoute

 /**
  * Check for document from route
  *
  * @param EventInterface $event Mvc Event
  *
  * @return void
  */
 public function onRoute(EventInterface $event)
 {
     $matchedRouteName = $event->getRouteMatch()->getMatchedRouteName();
     if ($matchedRouteName !== 'cms') {
         return;
     }
     $serviceManager = $event->getApplication()->getServiceManager();
     $isAdmin = $serviceManager->get('Auth')->hasIdentity();
     $isPreview = ($isAdmin and $event->getRequest()->getQuery()->get('preview') === 'true');
     $path = ltrim($event->getRouteMatch()->getParam('path'), '/');
     if (empty($path)) {
         $document = Document\Model::fromUrlKey('');
     } else {
         $document = $this->findDocument($path, $isPreview);
     }
     $this->logVisitor($isPreview, $isAdmin);
     if (empty($document) or !$document->isPublished() and !$isPreview) {
         $serviceManager->setService('CurrentDocument', false);
     } else {
         $translator = $serviceManager->get('MvcTranslator');
         $translator->setLocale($this->getLocale($document));
         AbstractValidator::setDefaultTranslator($translator);
         $serviceManager->setService('CurrentDocument', $document);
     }
 }
開發者ID:gotcms,項目名稱:gotcms,代碼行數:32,代碼來源:DocumentListener.php

示例2: checkAcl

 /**
  * Listen to the "route" event and check the user rights
  *
  * @param  MvcEvent $e
  * @return null
  */
 public function checkAcl(EventInterface $e)
 {
     // get route match, params and objects
     $routeMatch = $e->getRouteMatch();
     $controllerParam = $routeMatch->getParam('controller');
     $actionParam = $routeMatch->getParam('action');
     $serviceManager = $e->getApplication()->getServiceManager();
     $controllerLoader = $serviceManager->get('ControllerLoader');
     $acl = $serviceManager->get('User\\Acl\\Service');
     // try to load current controller
     try {
         $controller = $controllerLoader->get($controllerParam);
     } catch (\Exception $exception) {
         return;
     }
     // check acl
     if (!$acl->isAllowed($controllerParam, $actionParam)) {
         // check for guests
         if ($acl->getRole() == 'guest') {
             $routeMatch->setParam('controller', 'user');
             $routeMatch->setParam('action', 'login');
         } else {
             $routeMatch->setParam('controller', 'user');
             $routeMatch->setParam('action', 'forbidden');
         }
     }
 }
開發者ID:andreaszobl,項目名稱:software,代碼行數:33,代碼來源:UserListener.php

示例3: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $config = $sm->get('Config');
     $acl = new Acl($config);
     $role = Acl::DEFAULT_ROLE;
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
         $role = $user->getUserRole()->getRole();
     }
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $url = $e->getRouter()->assemble(array(), array('name' => 'home/login'));
         $response = $e->getResponse();
         $response->getHeaders()->addHeaderLine('Location', $url);
         $response->setStatusCode(302);
         $response->sendHeaders();
         exit;
     }
 }
開發者ID:madran,項目名稱:budzet_domowy,代碼行數:27,代碼來源:Module.php

示例4: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $config = $sm->get('Config');
     $acl = new Acl($config);
     // everyone is guest until logging in
     $role = Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
         $role = $user->getRole()->getName();
     }
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $url = $e->getRouter()->assemble(array(), array('name' => 'home'));
         $response = $e->getResponse();
         $response->getHeaders()->addHeaderLine('Location', $url);
         // The HTTP response status code 302 Found is a common way of performing a redirection.
         // http://en.wikipedia.org/wiki/HTTP_302
         $response->setStatusCode(302);
         $response->sendHeaders();
         exit;
     }
 }
開發者ID:CPDS,項目名稱:Sistema-de-controle-cpds,代碼行數:31,代碼來源:Module.php

示例5: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $config = $sm->get('Config');
     $acl = new Acl($config);
     // everyone is guest untill it gets logged in
     $role = Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     if ($auth->hasIdentity()) {
         $usr = $auth->getIdentity();
         $usrl_id = $usr->role_id;
         // Use a view to get the name of the role
         // TODO we don't need that if the names of the roles are comming from the DB
         switch ($usrl_id) {
             case 1:
                 $role = Acl::ADMIN_ROLE;
                 break;
             case 2:
                 $role = Acl::MANAGE_ROLE;
                 break;
             case 3:
                 $role = Acl::SATFF_ROLE;
                 break;
             case 4:
                 $role = Acl::AGENCY_ROLE;
                 break;
             default:
                 $role = Acl::DEFAULT_ROLE;
                 break;
         }
     }
 }
開發者ID:kienbk1910,項目名稱:RDCAdmin,代碼行數:35,代碼來源:Module.php

示例6: onRoute

 /**
  * @internal
  */
 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     // Validate loglevel value. Invalid content will cause the route to fail
     // and trigger the usage message.
     if (!preg_match('/^(emerg|alert|crit|err|warn|notice|info|debug)?$/', $e->getRouteMatch()->getParam('loglevel'))) {
         $e->setError(\Zend\Mvc\Application::ERROR_ROUTER_NO_MATCH);
         $e->getTarget()->getEventManager()->trigger(\Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR, $e);
     }
 }
開發者ID:patrickpreuss,項目名稱:Braintacle,代碼行數:12,代碼來源:Module.php

示例7: onRoute

 /**
  * @internal
  */
 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     // Validate loglevel value. Invalid content will cause the route to fail
     // and trigger the usage message.
     $logLevel = $e->getRouteMatch()->getParam('loglevel');
     if ($logLevel != '' and !\Zend\Validator\StaticValidator::execute($logLevel, 'Library\\LogLevel')) {
         $e->setError(\Zend\Mvc\Application::ERROR_ROUTER_NO_MATCH);
         $e->setName(\Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR);
         $e->getTarget()->getEventManager()->triggerEvent($e);
     }
 }
開發者ID:hschletz,項目名稱:braintacle,代碼行數:14,代碼來源:Module.php

示例8: renderSeo

 public function renderSeo(EventInterface $e)
 {
     $sm = $e->getApplication()->getServiceManager();
     $config = $sm->get('config');
     $routes = $config['seo']['seo_routes'];
     $seoRoute = $e->getRouteMatch()->getMatchedRouteName();
     $params = $e->getRouteMatch()->getParams();
     $id = $params['id'];
     $type = $routes[$seoRoute];
     $seo = $this->seoService->getSeoByTypeId($id, $type);
     if ($seo) {
         // get view Model
         $renderer = $sm->get('Zend\\View\\Renderer\\PhpRenderer');
         $renderer->headTitle()->append(ucfirst($seo->getTitle()));
         $renderer->headMeta()->appendName('description', $seo->getDescription());
         $renderer->headMeta()->setName('keywords', $seo->getKeywords());
     }
     // return response
     return $e->getResponse();
 }
開發者ID:nsenkevich,項目名稱:seo,代碼行數:20,代碼來源:SeoListener.php

示例9: onRoute

 public function onRoute(EventInterface $poEvent)
 {
     $loApplication = $poEvent->getApplication();
     $loRouteMatch = $poEvent->getRouteMatch();
     $loServiceManager = $loApplication->getServiceManager();
     $loEventManager = $loApplication->getEventManager();
     $loEvents = $loEventManager->getSharedManager();
     $loSession = new Session();
     $loUser = $loSession->getRegister('OnionAuth');
     $laMenu = Config::getAppOptions('menu');
     $lsRole = Acl::DEFAULT_ROLE;
     //guest
     if ($loUser !== null) {
         $lnGroup = $loUser->get('UserGroup_id');
         if (isset($laMenu['groups'][$lnGroup])) {
             $lsRole = $laMenu['groups'][$lnGroup];
         }
     }
     $laMenu = $laMenu[$lsRole];
     $loEvents->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($event) use($laMenu, $loUser) {
         $loController = $event->getTarget();
         $loController->layout()->laMenu = $laMenu;
         $loController->layout()->loUser = $loUser;
         $loController->layout()->loController = $loController;
     }, 100);
     $lsController = $loRouteMatch->getParam('__CONTROLLER__');
     $lsAction = $loRouteMatch->getParam('action');
     if (empty($lsController)) {
         $lsController = 'Index';
     }
     if (empty($lsAction)) {
         $lsAction = 'index';
     }
     $laConfigAcl = Config::getAppOptions('acl');
     $loAcl = new Acl($laConfigAcl);
     if (!$loAcl->hasResource($lsController)) {
         throw new \Exception('Resource ' . $lsController . ' not defined');
     }
     Debug::debug("Route: {$lsController}/{$lsAction}");
     if (!$loAcl->isAllowed($lsRole, $lsController, $lsAction)) {
         if ($lsController != 'Index' && $lsAction != 'index') {
             $loFlashMessenger = new FlashMessenger();
             $loFlashMessenger->addMessage(array('id' => 'Access-' . microtime(true), 'hidden' => false, 'push' => false, 'type' => 'danger', 'msg' => Translator::i18n('Você não tem permissão para executar esta ação!')));
         }
         $lsUrl = $poEvent->getRouter()->assemble(array(), array('name' => 'access', 'query' => array('urlFrom' => base64_encode($_SERVER['REQUEST_URI']))));
         $loResponse = $poEvent->getResponse();
         $loResponse->getHeaders()->addHeaderLine('Location', $lsUrl);
         $loResponse->setStatusCode(302);
         $loResponse->sendHeaders();
         exit;
     }
 }
開發者ID:m3uzz,項目名稱:module,代碼行數:52,代碼來源:Module.php

示例10: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     // Event manager of the app
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $acl = $sm->get('acl');
     // everyone is guest until logging in
     $role = Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
         $role = $user->getRole()->getName();
     }
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $response = $e->getResponse();
         $config = $sm->get('config');
         $redirect_route = $config['acl']['redirect_route'];
         if (!empty($redirect_route)) {
             $url = $e->getRouter()->assemble($redirect_route['params'], $redirect_route['options']);
             $response->getHeaders()->addHeaderLine('Location', $url);
             // The HTTP response status code 302 Found is a common way of performing a redirection.
             // http://en.wikipedia.org/wiki/HTTP_302
             $response->setStatusCode(302);
             $response->sendHeaders();
             exit;
         } else {
             //Status code 403 responses are the result of the web server being configured to deny access,
             //for some reason, to the requested resource by the client.
             //http://en.wikipedia.org/wiki/HTTP_403
             $response->setStatusCode(403);
             $response->setContent('
                 <html>
                     <head>
                         <title>403 Forbidden</title>
                     </head>
                     <body>
                         <h1>403 Forbidden</h1>
                     </body>
                 </html>');
             return $response;
         }
     }
 }
開發者ID:KBO-Techo-Dev,項目名稱:MagazinePro-zf25,代碼行數:50,代碼來源:Module.php

示例11: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $config = $sm->get('Config');
     $acl = new Acl($config);
     // everyone is guest untill it gets logged in
     $role = Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     // with Doctrine
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
         $usrlId = $user->getUsrlId();
         // Use a view to get the name of the role
         // TODO we don't need that if the names of the roles are comming from the DB
         switch ($usrlId) {
             case 1:
                 $role = Acl::DEFAULT_ROLE;
                 // guest
                 break;
             case 2:
                 $role = 'member';
                 break;
             case 3:
                 $role = 'admin';
                 break;
             default:
                 $role = Acl::DEFAULT_ROLE;
                 // guest
                 break;
         }
     }
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $url = $e->getRouter()->assemble(array(), array('name' => 'home'));
         $response = $e->getResponse();
         $response->getHeaders()->addHeaderLine('Location', $url);
         // The HTTP response status code 302 Found is a common way of performing a redirection.
         // http://en.wikipedia.org/wiki/HTTP_302
         $response->setStatusCode(302);
         $response->sendHeaders();
         exit;
     }
 }
開發者ID:pinnackl,項目名稱:zend-project,代碼行數:50,代碼來源:Module.php

示例12: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     // Event manager of the app
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $translator = $sm->get('translator');
     // $routeMatch->getParam('lang');
     // By default, the translator will get the locale to use from the Intl extension’s Locale class. If you want to set an alternative locale explicitly, you can do so by passing it to the setLocale() method.
     // $translator->setLocale('bg_BG');
     // echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
     // allow intl extension
     $translator->setLocale(\Locale::acceptFromHttp($_SERVER["HTTP_ACCEPT_LANGUAGE"]));
     //-		echo '<h1>On Route</h1>';
     // echo $translator->getLocale();
 }
開發者ID:houzoumi,項目名稱:fmi,代碼行數:16,代碼來源:Module.php

示例13: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     // Event manager of the app
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $sm = $application->getServiceManager();
     $auth = $sm->get('Zend\\Authentication\\AuthenticationService');
     $acl = $sm->get('acl');
     // everyone is guest until logging in
     $role = Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
         $role = $user->getRole()->getName();
     }
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $response = $e->getResponse();
         $config = $sm->get('config');
         $redirect_route = $config['acl']['redirect_route'];
         if (!empty($redirect_route['options']['params'])) {
             $url = $e->getRouter()->assemble($redirect_route['params'], $redirect_route['options']);
             $response->getHeaders()->addHeaderLine('Location', $url);
             $response->setStatusCode(302);
             $response->sendHeaders();
             exit;
         } else {
             $response->setStatusCode(403);
             $response->setContent('
                 <html>
                     <head>
                         <title>403 Forbidden</title>
                     </head>
                     <body>
                         <h1>403 Forbidden</h1>
                     </body>
                 </html>');
             return $response;
         }
     }
 }
開發者ID:parsoya,項目名稱:rewardpoints,代碼行數:45,代碼來源:Module.php

示例14: isGranted

 /**
  * @see \Usermanager\Guard\AbstractGuard::isGranted()
  */
 public function isGranted(EventInterface $e)
 {
     $route = $e->getRouteMatch()->getMatchedRouteName();
     $allowed = array();
     foreach ($this->options->getGuards() as $pattern => $roles) {
         if (fnmatch($pattern, $route, FNM_CASEFOLD)) {
             $allowed = $roles;
             break;
         }
     }
     if (empty($allowed)) {
         return $this->options->getPolicy() === \Usermanager\Policy\Allow::class;
     }
     if (in_array('*', $allowed)) {
         return true;
     }
     return $this->identityService->hasRoles($allowed);
 }
開發者ID:mhilker,項目名稱:usermanager,代碼行數:21,代碼來源:GuardListener.php

示例15: check

 /**
  * Check if ssl is forced or not
  *
  * @param EventInterface $event Mvc event
  *
  * @return null|Zend\Http\PhpEnvironment\Response
  */
 public function check(EventInterface $event)
 {
     $coreConfig = $event->getApplication()->getServiceManager()->get('CoreConfig');
     $matchedRouteName = $event->getRouteMatch()->getMatchedRouteName();
     $request = $event->getRequest();
     $uri = $request->getUri();
     if ($matchedRouteName === 'cms') {
         if ($uri->getScheme() === 'https' or $coreConfig->getValue('force_frontend_ssl')) {
             $newUri = new Uri($coreConfig->getValue('secure_frontend_base_path'));
             $newUri->setScheme('https');
         } else {
             $newUri = new Uri($coreConfig->getValue('unsecure_frontend_base_path'));
         }
     } else {
         if ($uri->getScheme() === 'https' or $coreConfig->getValue('force_backend_ssl')) {
             $newUri = new Uri($coreConfig->getValue('secure_backend_base_path'));
             $newUri->setScheme('https');
         } else {
             $newUri = new Uri($coreConfig->getValue('unsecure_backend_base_path'));
         }
     }
     if (!empty($newUri) and $newUri->isValid() and ($newUri->getHost() != '' and $uri->getHost() != $newUri->getHost()) or $newUri->getScheme() != '' and $uri->getScheme() != $newUri->getScheme()) {
         $uri->setPort($newUri->getPort());
         if ($newUri->getHost() != '') {
             $uri->setHost($newUri->getHost());
         }
         if ($newUri->getScheme() != '') {
             $uri->setScheme($newUri->getScheme());
         }
         $response = $event->getResponse();
         $response->setStatusCode(302);
         $response->getHeaders()->addHeaderLine('Location', $request->getUri());
         $event->stopPropagation();
         return $response;
     }
 }
開發者ID:gotcms,項目名稱:gotcms,代碼行數:43,代碼來源:SslListener.php


注:本文中的Zend\EventManager\EventInterface::getRouteMatch方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。