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


PHP EventInterface::getRequest方法代碼示例

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


在下文中一共展示了EventInterface::getRequest方法的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: attachListeners

 private function attachListeners(EventInterface $event)
 {
     $request = $event->getRequest();
     $application = $event->getApplication();
     $services = $application->getServiceManager();
     $events = $application->getEventManager();
     $config = $services->get('Config');
     //Display exceptions based on configuration and console mode
     if ($request instanceof ConsoleRequest || empty($config['view_manager']['display_exceptions'])) {
         return;
     }
     $jsonHandler = new JsonResponseHandler();
     if (!empty($config['view_manager']['json_exceptions']['show_trace'])) {
         //Add trace to the JSON output
         $jsonHandler->addTraceToOutput(true);
     }
     if (!empty($config['view_manager']['json_exceptions']['ajax_only'])) {
         //Only return JSON response for AJAX requests
         $jsonHandler->onlyForAjaxRequests(true);
     }
     if (!empty($config['view_manager']['json_exceptions']['display'])) {
         //Turn on JSON handler
         $this->run->pushHandler($jsonHandler);
     }
     //Attach the Whoops ExceptionStrategy
     $exceptionStrategy = new ExceptionStrategy($this->run);
     $exceptionStrategy->attach($events);
     //Attach the Whoops RouteNotFoundStrategy
     $routeNotFoundStrategy = new RouteNotFoundStrategy($this->run);
     $routeNotFoundStrategy->attach($events);
     //Detach default ExceptionStrategy
     $services->get('Zend\\Mvc\\View\\Http\\ExceptionStrategy')->detach($events);
     //Detach default RouteNotFoundStrategy
     $services->get('Zend\\Mvc\\View\\Http\\RouteNotFoundStrategy')->detach($events);
 }
開發者ID:vladvoth,項目名稱:productclash,代碼行數:35,代碼來源:Module.php

示例3: onBootstrap

 public function onBootstrap(EventInterface $event)
 {
     /*$eventManager        = $e->getApplication()->getEventManager();
       $moduleRouteListener = new ModuleRouteListener();
       $moduleRouteListener->attach($eventManager);*/
     $application = $event->getTarget();
     $serviceManager = $application->getServiceManager();
     $translator = $serviceManager->get('translator');
     $translator->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))->setFallbackLocale('en_US');
     $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $event) use($serviceManager) {
         $request = $event->getRequest();
         $response = $event->getResponse();
         if (!($request instanceof HttpRequest && $response instanceof HttpResponse)) {
             return;
             // CLI application maybe?
         }
         $authAdapter = $serviceManager->get('AuthenticationAdapter');
         $authAdapter->setRequest($request);
         $authAdapter->setResponse($response);
         $result = $authAdapter->authenticate();
         if ($result->isValid()) {
             return;
             // OK
         }
         $response->setContent('Access denied');
         $response->setStatusCode(HttpResponse::STATUS_CODE_401);
         $event->setResult($response);
         // to end
         return false;
         // event propagation stop
     });
 }
開發者ID:Checo1983,項目名稱:booklist,代碼行數:32,代碼來源:Module.php

示例4: authenticateViaCookie

 /**
  * Authenticate user via cookies
  *
  * @param EventInterface $e
  */
 public function authenticateViaCookie(EventInterface $e)
 {
     $serviceManager = $e->getApplication()->getServiceManager();
     $userIsLoggedIn = $serviceManager->get('zfcuser_auth_service')->hasIdentity();
     $cookie = $e->getRequest()->getCookie();
     if (!$userIsLoggedIn && isset($cookie['remember_me'])) {
         $adapter = $e->getApplication()->getServiceManager()->get('ZfcUser\\Authentication\\Adapter\\AdapterChain');
         $adapter->prepareForAuthentication($e->getRequest());
         $authService = $e->getApplication()->getServiceManager()->get('zfcuser_auth_service');
         $authService->authenticate($adapter);
     }
     $e->getApplication()->getEventManager()->getSharedManager()->attach('*', ['changePassword.post', 'logout'], function (EventInterface $e) use($serviceManager, $cookie) {
         if (isset($cookie['remember_me'])) {
             $cookie = explode("\n", $cookie['remember_me']);
             $user = $serviceManager->get('zfcuser_auth_service')->getIdentity();
             $serviceManager->get('User\\Cookie\\Service\\Cookie')->removeSerie($user, $cookie[1]);
             $serviceManager->get('User\\Cookie\\Service\\Cookie')->removeCookie();
         }
     });
 }
開發者ID:hale0124,項目名稱:zf2-starter-template,代碼行數:25,代碼來源:Module.php

示例5: onBootstrap

 /**
  * {@inheritDoc}
  */
 public function onBootstrap(EventInterface $event)
 {
     if (!$event->getRequest() instanceof HttpRequest) {
         return;
     }
     /* @var $app \Zend\Mvc\ApplicationInterface */
     $app = $event->getTarget();
     /* @var $services \Zend\ServiceManager\ServiceLocatorInterface */
     $services = $app->getServiceManager();
     $guards = $services->get('CmsAcl\\Guards');
     foreach ($guards as $guard) {
         $app->getEventManager()->attach($guard);
     }
 }
開發者ID:coolms,項目名稱:acl,代碼行數:17,代碼來源:Module.php

示例6: onBootstrap

 /**
  * {@inheritDoc}
  */
 public function onBootstrap(EventInterface $e)
 {
     $config = $e->getTarget()->getServiceManager()->get('Config');
     $config = isset($config['view_manager']) ? $config['view_manager'] : array();
     if ($e->getRequest() instanceof ConsoleRequest || empty($config['display_exceptions'])) {
         return;
     }
     $this->run = new Run();
     $this->run->register();
     // set up whoops config
     $prettyPageHandler = new PrettyPageHandler();
     if (isset($config['editor'])) {
         if ($config['editor'] == 'phpStorm') {
             $localPath = null;
             if (isset($config['local_path'])) {
                 $localPath = $config['local_path'];
             }
             $prettyPageHandler->setEditor(function ($file, $line) use($localPath) {
                 if ($localPath) {
                     // if your development server is not local it's good to map remote files to local
                     $translations = array('^' . __DIR__ => $config['editor_path']);
                     // change to your path
                     foreach ($translations as $from => $to) {
                         $file = preg_replace('#' . $from . '#', $to, $file, 1);
                     }
                 }
                 return "pstorm://{$file}:{$line}";
             });
         } else {
             $prettyPageHandler->setEditor($config['editor']);
         }
     }
     if (!empty($config['json_exceptions']['display'])) {
         $jsonHandler = new JsonResponseHandler();
         if (!empty($config['json_exceptions']['show_trace'])) {
             $jsonHandler->addTraceToOutput(true);
         }
         if (!empty($config['json_exceptions']['ajax_only'])) {
             $jsonHandler->onlyForAjaxRequests(true);
         }
         $this->run->pushHandler($jsonHandler);
     }
     if (!empty($config['whoops_no_catch'])) {
         $this->noCatchExceptions = $config['whoops_no_catch'];
     }
     $this->run->pushHandler($prettyPageHandler);
     $eventManager = $e->getTarget()->getEventManager();
     $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, array($this, 'prepareException'));
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'prepareException'));
 }
開發者ID:sebfek,項目名稱:zf2-whoops,代碼行數:53,代碼來源:Module.php

示例7: onBootstrap

 /**
  * {@inheritDoc}
  */
 public function onBootstrap(EventInterface $event)
 {
     if (!$event->getRequest() instanceof HttpRequest) {
         return;
     }
     /* @var $app \Zend\Mvc\ApplicationInterface */
     $app = $event->getTarget();
     /* @var $services \Zend\ServiceManager\ServiceLocatorInterface */
     $services = $app->getServiceManager();
     /* @var $options ModuleOptionsInterface */
     $options = $services->get(ModuleOptions::class);
     /* @var $strategy \CmsAuthorization\View\Strategy\AbstractStrategy */
     $strategy = $services->get($options->getUnauthorizedStrategy());
     $app->getEventManager()->attach($strategy);
 }
開發者ID:coolms,項目名稱:authorization,代碼行數:18,代碼來源:Module.php

示例8: onBootstrap

 public function onBootstrap(EventInterface $e)
 {
     /** @var EventManager $eventManager */
     $eventManager = $e->getApplication()->getEventManager();
     $eventManager->attach(MvcEvent::EVENT_ROUTE, function (EventInterface $e) {
         /** @var Request $request */
         $request = $e->getRequest();
         if (!$request instanceof Request) {
             return;
         }
         $serviceManager = $e->getApplication()->getServiceManager();
         $routeGenerator = $serviceManager->get(RouteGenerator::class);
         $routeGenerator->generate();
     }, 1000);
 }
開發者ID:t4web,項目名稱:crud,代碼行數:15,代碼來源:Module.php

示例9: onBootstrap

 public function onBootstrap(EventInterface $e)
 {
     /* @var $e MvcEvent */
     $eventManager = $e->getApplication()->getEventManager();
     $sharedManager = $eventManager->getSharedManager();
     $createJobListener = new \Organizations\Acl\Listener\CheckJobCreatePermissionListener();
     $createJobListener->attachShared($sharedManager);
     if ($e->getRequest() instanceof \Zend\Http\Request) {
         $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function (MvcEvent $event) {
             $serviceManager = $event->getApplication()->getServiceManager();
             $options = $serviceManager->get('Organizations/ImageFileCacheOptions');
             if ($options->getEnabled()) {
                 $serviceManager->get('Organizations\\ImageFileCache\\ApplicationListener')->onDispatchError($event);
             }
         });
     }
 }
開發者ID:cross-solution,項目名稱:yawik,代碼行數:17,代碼來源:Module.php

示例10: onBootstrap

 /**
  * Bootstrap Listener
  *
  * @param EventInterface $event
  * @return void
  */
 public function onBootstrap(EventInterface $event)
 {
     $request = $event->getRequest();
     if (!$request instanceof PhpRequest) {
         return;
     }
     $app = $event->getTarget();
     $locator = $app->getServiceManager();
     $config = $locator->get('Config');
     if (true === $config['netglue_ip']['rewrite_remote_addr']) {
         $service = $locator->get('NetglueIp\\Service\\IpService');
         if ($ip = $service->getIp()) {
             $serverParams = $request->getServer();
             $serverParams->ORIGINAL_REMOTE_ADDR = $serverParams->REMOTE_ADDR;
             $serverParams->REMOTE_ADDR = $ip;
         }
     }
 }
開發者ID:netglue,項目名稱:ZF2-Proxy-IP-Module,代碼行數:24,代碼來源:Module.php

示例11: loadMenu

 /**
  * Load menu if module has view with name "menu.phtml"
  *
  * @param EventInterface $event Event
  *
  * @return void
  */
 public function loadMenu(EventInterface $event)
 {
     if ($route = $event->getRouter()->getRoute('module')->match($event->getRequest())) {
         if ($route->getParam('module') === 'module') {
             return;
         }
         $filter = new Filter\Word\CamelCaseToSeparator();
         $filter->setSeparator('-');
         $filterChain = new Filter\FilterChain();
         $filterChain->attach($filter)->attach(new Filter\StringToLower());
         $template = $filterChain->filter($route->getParam('module')) . '/menu';
         $target = $event->getTarget();
         $resolver = $event->getApplication()->getServiceManager()->get('Zend\\View\\Resolver\\TemplatePathStack');
         $navigation = $target->getServiceLocator()->get('navigation');
         $navigation->findByRoute('module')->addPage(array('label' => $route->getParam('module'), 'route' => $event->getRouteMatch()->getMatchedRouteName(), 'active' => true));
         if (false !== $resolver->resolve($template)) {
             $target->layout()->setVariable('moduleMenu', $template);
         }
     }
 }
開發者ID:gotcms,項目名稱:gotcms,代碼行數:27,代碼來源:Module.php

示例12: 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

示例13: logRequest

 /**
  * @param EventInterface $event
  */
 public function logRequest(EventInterface $event)
 {
     if ($event->getRequest() instanceof \Zend\Http\PhpEnvironment\Request) {
         $this->getLog()->debug(print_r(array($event->getRequest()->getUri()->getHost() => array('Request' => $event->getRequest()->getUri())), true));
     }
 }
開發者ID:eddiejaoude,項目名稱:zf2-logger,代碼行數:9,代碼來源:Request.php

示例14: onBootstrap

 public function onBootstrap(EventInterface $e)
 {
     $serviceManager = $e->getApplication()->getServiceManager();
     $config = $e->getApplication()->getServiceManager()->get('config');
     $translator = $serviceManager->get('translator');
     // Gestion de la locale
     if (PHP_SAPI !== 'cli') {
         //translator
         // Gestion locale pour le back
         if ($serviceManager->get('router')->match($serviceManager->get('request')) && strpos($serviceManager->get('router')->match($serviceManager->get('request'))->getMatchedRouteName(), 'admin') !== false) {
             if ($e->getRequest()->getCookie() && $e->getRequest()->getCookie()->offsetExists('pg_locale_back')) {
                 $locale = $e->getRequest()->getCookie()->offsetGet('pg_locale_back');
             }
         }
         if (empty($locale)) {
             if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
                 $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
             } else {
                 $locale = 'fr_FR';
             }
         }
         $translator->setLocale($locale);
         // plugins
         $translate = $serviceManager->get('viewhelpermanager')->get('translate');
         $translate->getTranslator()->setLocale($locale);
         $options = $serviceManager->get('playgroundcore_module_options');
         $options->setLocale($locale);
     }
     // positionnement de la langue pour les traductions de date avec strftime
     setlocale(LC_TIME, "fr_FR", 'fr_FR.utf8', 'fra');
     AbstractValidator::setDefaultTranslator($translator, 'playgroundcore');
     /*
      * Entity translation based on Doctrine Gedmo library
      */
     $doctrine = $serviceManager->get('doctrine.entitymanager.orm_default');
     $evm = $doctrine->getEventManager();
     $translatableListener = new \Gedmo\Translatable\TranslatableListener();
     // TODO : Set the Default locale to be taken from config
     $translatableListener->setDefaultLocale('fr_FR');
     // If no translation is found, fallback to entity data
     $translatableListener->setTranslationFallback(true);
     // set Locale
     if (!empty($locale)) {
         $translatableListener->setTranslatableLocale($locale);
     }
     $evm->addEventSubscriber($translatableListener);
     /**
      * Adding a Filter to slugify a string (make it URL compliiant)
      */
     $filterChain = new \Zend\Filter\FilterChain();
     $filterChain->getPluginManager()->setInvokableClass('slugify', 'PlaygroundCore\\Filter\\Slugify');
     $filterChain->attach(new Filter\Slugify());
     // Start the session container
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config['session']);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     /**
      * Optional: If you later want to use namespaces, you can already store the
      * Manager in the shared (static) Container (=namespace) field
      */
     \Zend\Session\Container::setDefaultManager($sessionManager);
     // Google Analytics : When the render event is triggered, we invoke the view helper to
     // render the javascript code.
     $e->getApplication()->getEventManager()->attach(\Zend\Mvc\MvcEvent::EVENT_RENDER, function (\Zend\Mvc\MvcEvent $e) use($serviceManager) {
         $view = $serviceManager->get('ViewHelperManager');
         $plugin = $view->get('googleAnalytics');
         $plugin();
         $pluginOG = $view->get('facebookOpengraph');
         $pluginOG();
     });
     if (PHP_SAPI !== 'cli') {
         $session = new Container('facebook');
         $fb = $e->getRequest()->getPost()->get('signed_request');
         if ($fb) {
             list($encoded_sig, $payload) = explode('.', $fb, 2);
             $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
             $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
             $session->offsetSet('signed_request', $data);
             // This fix exists only for safari on Windows : we need to redirect the user to the page outside of iframe
             // for the cookie to be accepted. Core just adds a 'redir_fb_page_id' var to alert controllers
             // that they need to send the user back to FB...
             if (!count($_COOKIE) > 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Safari')) {
                 echo '<script type="text/javascript">' . 'window.top.location.href = window.location.href+"?redir_fb_page_id=' . $data["page"]["id"] . '";' . '</script>';
             }
             // This fix exists only for IE6+, when this app is embedded into an iFrame : The P3P policy has to be set.
             $response = $e->getResponse();
             if ($response instanceof \Zend\Http\Response && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strpos($_SERVER['HTTP_USER_AGENT'], 'rv:11.'))) {
                 $response->getHeaders()->addHeaderLine('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
             }
         }
     }
 }
開發者ID:arnaud-hours,項目名稱:PlaygroundCore,代碼行數:93,代碼來源:Module.php

示例15: onRoute

 public function onRoute(\Zend\EventManager\EventInterface $e)
 {
     $application = $e->getApplication();
     $routeMatch = $e->getRouteMatch();
     $serviceManager = $application->getServiceManager();
     $authenticationService = $serviceManager->get('Zend\\Authentication\\AuthenticationService');
     $acl = $serviceManager->get('VisoftBaseModule\\Service\\Authorization\\Acl\\Acl');
     // everyone is guest until logging in
     $role = \VisoftBaseModule\Service\Authorization\Acl\Acl::DEFAULT_ROLE;
     // The default role is guest $acl
     // get role if user logged in
     if ($authenticationService->hasIdentity()) {
         $user = $authenticationService->getIdentity();
         $role = $user->getRole()->getName();
     }
     // requested route
     $controller = $routeMatch->getParam('controller');
     $action = $routeMatch->getParam('action');
     $params = $routeMatch->getParams();
     if (!$acl->hasResource($controller)) {
         throw new \Exception('Resource ' . $controller . ' not defined in ACL');
     }
     if (!$acl->isAllowed($role, $controller, $action)) {
         $response = $e->getResponse();
         $requestedUri = $e->getRequest()->getRequestUri();
         $config = $serviceManager->get('config');
         $redirect_route = $config['acl']['redirect_route'];
         if (!empty($redirect_route)) {
             // TODO: FIXIT
             $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);
             $headers = $response->getHeaders();
             $cookie = new \Zend\Http\Header\SetCookie('requestedUri', $requestedUri, time() + 60, '/');
             $headers->addHeader($cookie);
             $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:vadimizmalkov,項目名稱:visoft-base-module,代碼行數:57,代碼來源:Module.php


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