getApplication() public method

Get application instance
public getApplication ( ) : Zend\Mvc\ApplicationInterface
return Zend\Mvc\ApplicationInterface
コード例 #1
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $serviceManager = $e->getApplication()->getServiceManager();
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'handleException'));
     //set the global exception handler
     //set_exception_handler( array( $this, 'handleException' ) );
     // Disable layout for ajax requests
     // $eventManager->attach(MvcEvent::EVENT_DISPATCH, function ($e)
     // {
     // IF its an AJAX request & its not in JSON Model form yet
     // then it has been JMS serialized & thus just needs to be printed
     // if ($e->getRequest()->isXmlHttpRequest() && ! ($result instanceof \Zend\View\Model\JsonModel) ) {
     //$viewModel = new \Zend\View\Model\ViewModel(array(
     //    'content' => $result,
     //));
     //$viewModel->setTemplate('layout/empty');
     //$e->setViewModel($viewModel);
     // }
     // });
     // Ensuring services are available to be called in the application model
     // by setting the registry into a static variable
     // This enforces usage of service locator pattern instead of dependency injection
     \Application\Model\CommonServiceMutatorTrait::setServiceLocator($serviceManager);
 }
コード例 #2
0
ファイル: PageMeta.php プロジェクト: msingi/msingi
 /**
  * @return \Doctrine\ORM\EntityManager
  */
 public function getEntityManager()
 {
     if (null === $this->entityManager) {
         $this->entityManager = $this->event->getApplication()->getServiceManager()->get('Doctrine\\ORM\\EntityManager');
     }
     return $this->entityManager;
 }
コード例 #3
0
 public function onBootstrap(MvcEvent $e)
 {
     $events = $e->getApplication()->getEventManager()->getSharedManager();
     $config = $e->getApplication()->getServiceManager()->get('config');
     // configure session
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config['session']);
     $events->attach('ZfcUser\\Service\\User', 'register.post', function ($e) {
         $user = $e->getParam('user');
         // User account object
         $form = $e->getParam('form');
         // Form object
         // Perform your custom action here
         /* @var $sm ServiceLocatorInterface */
         $sm = $e->getTarget()->getServiceManager();
         /* @var $em \Doctrine\ORM\EntityManager */
         $em = $sm->get('doctrine.entitymanager.orm_default');
         $userRole = $em->find(__NAMESPACE__ . '\\Entity\\UserRole', DEFAULT_ROLE);
         if (NULL !== $userRole) {
             $user->addRole($userRole);
             $em->persist($user);
             $em->flush();
         }
     });
 }
コード例 #4
0
 public function dispatchError(MvcEvent $e)
 {
     $sharedManager = $e->getApplication()->getEventManager()->getSharedManager();
     $sharedManager->attach('Zend\\Mvc\\Application', 'dispatch.error', function ($e) {
         if ($e->getParam('exception')) {
             ob_clean();
             //Limpar a tela de erros do php
             header('HTTP/1.1 400 Bad Request');
             $exception = $e->getParam('exception');
             $sm = $e->getApplication()->getServiceManager();
             $config = $sm->get('Config');
             $e->getApplication()->getServiceManager()->get('Controller\\Plugin\\Manager')->get('jsLog')->log($exception, 2);
             $viewModel = new \Zend\View\Model\ViewModel(['exception' => $exception]);
             if ($e->getRequest()->isXmlHttpRequest()) {
                 $viewModel->setTemplate($config['js_library']['error_ajax_exception']);
                 $e->getApplication()->getServiceManager()->get('ViewRenderer')->render($viewModel);
             } else {
                 $viewModel->setTemplate($config['js_library']['error_exception']);
                 echo $e->getApplication()->getServiceManager()->get('ViewRenderer')->render($viewModel);
             }
             /*
              * Com erros handler o codigo continua a ser executado,
              * entao o exit para e so mostra os erros
              */
             exit;
         }
     });
 }
コード例 #5
0
ファイル: Module.php プロジェクト: riceri/MvitInvoice
 public function onBootstrap(MvcEvent $e)
 {
     $e->getApplication()->getServiceManager()->get('translator');
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     // Add translation
     $translator = $e->getApplication()->getServiceManager()->get('translator');
     if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
         $setLang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
     } else {
         $setLang = '';
     }
     $translator->setLocale(\Locale::acceptFromHttp($setLang))->setFallbackLocale('en_US');
     // Add ACL information to the Navigation view helper
     $sm = $e->getApplication()->getServiceManager();
     $authorize = $sm->get('BjyAuthorize\\Service\\Authorize');
     $acl = $authorize->getAcl();
     $role = $authorize->getIdentity();
     \Zend\View\Helper\Navigation::setDefaultAcl($acl);
     \Zend\View\Helper\Navigation::setDefaultRole($role);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Application', 'dispatch.error', function ($e) use($sm) {
         if ($e->getParam('exception')) {
             $sm->get('Zend\\Log\\Logger')->crit($e->getParam('exception'));
         }
     });
 }
コード例 #6
0
ファイル: Module.php プロジェクト: bladehr8/bowhunter2015
 public function onBootstrap(MvcEvent $e)
 {
     /*
             $eventManager        = $e->getApplication()->getEventManager();
             $moduleRouteListener = new ModuleRouteListener();
             $moduleRouteListener->attach($eventManager);
     
     $this->initSession(array(
     'remember_me_seconds' => 180,
     'use_cookies' => true,
     'cookie_httponly' => true,
     ));
     */
     $eventManager = $e->getApplication()->getEventManager();
     $eventManager->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         //echo '<pre>'; print_r($config);exit;
         if (isset($config['module_layouts'][$moduleNamespace])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]);
         }
     }, 100);
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $this->initSession(array('remember_me_seconds' => 180, 'use_cookies' => true, 'cookie_httponly' => true));
 }
コード例 #7
0
ファイル: Module.php プロジェクト: jrodev/Yoson
 public function onBootstrap(MvcEvent $e)
 {
     $callback = function (MvcEvent $event) {
         $view = $event->getApplication()->getServiceManager()->get('ViewRenderer');
         $config = $event->getApplication()->getConfig();
         $controller = $event->getTarget();
         $rm = $event->getRouteMatch();
         if (!$rm instanceof RouteMatch) {
             $rm = new RouteMatch(array('module' => 'Application', '__NAMESPACE__' => 'Application\\Controller', '__CONTROLLER__' => 'index', 'controller' => 'Application\\Controller\\Index', 'action' => 'index'));
         }
         $params = $rm->getParams();
         $modulo = "";
         if (isset($params['__NAMESPACE__'])) {
             $paramsArray = explode("\\", $params['__NAMESPACE__']);
             $modulo = $paramsArray[0];
         }
         $controller = isset($params['__CONTROLLER__']) ? $params['__CONTROLLER__'] : "";
         $action = isset($params['action']) ? $params['action'] : null;
         $app = $event->getParam('application');
         $sm = $app->getServiceManager();
         $paramsConfig = ['modulo' => strtolower($modulo), 'controller' => strtolower($controller), 'action' => strtolower($action), 'baseHost' => $view->base_path("/"), 'cssStaticHost' => "", 'jsStaticHost' => "", 'statHost' => "", 'eHost' => "", 'statVers' => '?', 'min' => '', 'AppCore' => [], 'AppSandbox' => [], 'AppSchema' => ['modules' => [], 'requires' => []]];
         $view->inlineScript()->appendScript("var yOSON=" . json_encode($paramsConfig, JSON_FORCE_OBJECT));
     };
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', MvcEvent::EVENT_DISPATCH, $callback, 100);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Application', MvcEvent::EVENT_DISPATCH_ERROR, $callback, 100);
 }
コード例 #8
0
 public function onBootstrap(MvcEvent $e)
 {
     $sm = $e->getApplication()->getServiceManager();
     $routeHandler = $sm->get('MultiRoleAclBase\\Handler\\RouteHandler');
     $eventManager = $e->getApplication()->getEventManager();
     $eventManager->attach(MvcEvent::EVENT_ROUTE, array($routeHandler, 'handler'), -100);
 }
コード例 #9
0
ファイル: Module.php プロジェクト: GlitchedMan/armasquads
 public function onBootstrap(MvcEvent $e)
 {
     $application = $e->getApplication();
     $serviceManager = $application->getServiceManager();
     $eventManager = $application->getEventManager();
     $sharedManager = $eventManager->getSharedManager();
     // DISPATCH EVENT
     $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         if ($moduleNamespace == 'Frontend') {
             // frontend layout
             // wenn der benutzer eingeloggt ist darf er das admin panel betreten?
             $authService = $e->getApplication()->getServiceManager()->get('AuthService');
             // normal layout
             $controller->layout('layout/frontend');
             /**
                             if( $authService->isLoggedIn() ) {
                                 // layout für registrierte user
                     			$controller->layout('layout/frontend/registered');
                             } else {
                                 // normal layout unregistriert
                                 $controller->layout('layout/frontend');
                             }
                             **/
         }
     }, 50);
 }
コード例 #10
0
 /**
  * @param MvcEvent $event
  */
 public function onBootstrap(MvcEvent $event)
 {
     $eventManager = $event->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $application = $event->getApplication();
     $eventManager = $application->getEventManager();
     /* @var $serviceManager ServiceManager */
     $serviceManager = $application->getServiceManager();
     $config = $serviceManager->get('config');
     if (array_key_exists('locale', $config)) {
         $config = $config['locale'];
     } else {
         $config = null;
     }
     if (!$config) {
         Locale::setDefault('en');
         // hardcoded here
         $translator = $serviceManager->get('translator');
         AbstractValidator::setDefaultTranslator($translator);
         return;
     }
     $settings = new Settings($config);
     // set the locale based on URL from route or cookie & set the default translator to all the app
     $eventManager->attach(MvcEvent::EVENT_ROUTE, function (MvcEvent $e) use($config, $settings, $serviceManager) {
         $settings->setRouteMatch($e->getRouteMatch());
         if (!$e->getRequest() instanceof Request) {
             $settings->setRequest($e->getRequest());
         }
         \Locale::setDefault($settings->getLocale());
         $translator = $serviceManager->get('translator');
         AbstractValidator::setDefaultTranslator($translator);
     }, -9);
 }
コード例 #11
0
ファイル: Module.php プロジェクト: pdizz/pdizz-web
 /**
  * Attach authentication event listeners
  *
  * @param MvcEvent $event
  */
 public function onBootstrap(MvcEvent $event)
 {
     $shared = $event->getApplication()->getEventManager()->getSharedManager();
     $services = $event->getApplication()->getServiceManager();
     $listener = $services->get(ApiKeyListener::class);
     $shared->attach('Zend\\Mvc\\Application', MvcAuthEvent::EVENT_AUTHENTICATION, [$listener, 'authenticate'], 1000);
 }
コード例 #12
0
ファイル: Module.php プロジェクト: webpants/YAWIK
 public function onBootstrap(MvcEvent $e)
 {
     if (\Zend\Console\Console::isConsole()) {
         return;
     }
     $eventManager = $e->getApplication()->getEventManager();
     $services = $e->getApplication()->getServiceManager();
     // TODO: Löschen sobald die Lösung mit der LoginBox klappt
     //$eventManager->attach(
     //    array(MvcEvent::EVENT_RENDER, MvcEvent::EVENT_RENDER_ERROR),
     //    array(new InjectLoginInfoListener(), 'injectLoginInfo'), -1000
     //);
     $eventManager->attach(MvcEvent::EVENT_ROUTE, function (MvcEvent $e) use($services) {
         /** @var CheckPermissionsListener $checkPermissionsListener */
         $checkPermissionsListener = $services->get('Auth/CheckPermissionsListener');
         $checkPermissionsListener->onRoute($e);
     }, -10);
     $eventManager->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) use($services) {
         /** @var CheckPermissionsListener $checkPermissionsListener */
         $checkPermissionsListener = $services->get('Auth/CheckPermissionsListener');
         $checkPermissionsListener->onDispatch($e);
     }, 10);
     $unauthorizedAccessListener = $services->get('UnauthorizedAccessListener');
     $unauthorizedAccessListener->attach($eventManager);
     $sharedManager = $eventManager->getSharedManager();
     $defaultlistener = $services->get('Auth/Listener/AuthAggregateListener');
     $defaultlistener->attachShared($sharedManager);
 }
コード例 #13
0
ファイル: Module.php プロジェクト: spalax/zf2-simple-acl
 public function onBootstrap(MvcEvent $e)
 {
     /* @var $sm \Zend\ServiceManager\ServiceManager */
     $sm = $e->getApplication()->getServiceManager();
     $userEntityClass = $sm->get('zfcuser_module_options')->getUserEntityClass();
     $classRef = new \ReflectionClass($userEntityClass);
     if (!$classRef->implementsInterface('Zf2SimpleAcl\\Entity\\UserInterface')) {
         throw new \InvalidArgumentException($userEntityClass . ' must implement Zf2SimpleAcl\\Entity\\UserInterface');
     }
     $eventManager = $e->getApplication()->getEventManager();
     $recognizers = $sm->get('zf2simpleacl_module_options')->getRecognizers();
     $authService = new AuthenticationService($sm->get('zfcuserauthservice'));
     if (!empty($recognizers) && count($recognizers)) {
         $authService = new AuthenticationAggregator();
         $authService->addService(new AuthenticationService($sm->get('zfcuserauthservice')));
         foreach ($recognizers as $recognizer) {
             if (!$sm->has($recognizer)) {
                 if (!$sm->has('zf2simpleacl_recognizer_' . $recognizer)) {
                     throw new RuntimeException("Could not find recognizer service with name\n                                                    [{$recognizer}] nor with [zf2simpleacl_recognizer_{$recognizer}]");
                 } else {
                     $recognizer = 'zf2simpleacl_recognizer_' . $recognizer;
                 }
             }
             $authService->addService($sm->get($recognizer));
         }
     }
     $eventManager->attach(new RouteGuard($sm->get('zf2simpleacl_acl'), $authService));
     $eventManager->attach(new RedirectionStrategy($sm->get('zf2simpleacl_redirect_route')));
     $eventManager->attach(new ForbiddenStrategy());
 }
コード例 #14
0
 /**
  * @param MvcEvent $e
  * @return null|\Zend\Http\PhpEnvironment\Response
  */
 public function errorProcess(MvcEvent $e)
 {
     /** @var \Zend\Di\Di $di */
     $di = $e->getApplication()->getServiceManager()->get('di');
     $eventParams = $e->getParams();
     /** @var array $configuration */
     $configuration = $e->getApplication()->getConfig();
     $vars = array();
     if (isset($eventParams['exception'])) {
         /** @var \Exception $exception */
         $exception = $eventParams['exception'];
         if ($configuration['errors']['show_exceptions']['message']) {
             $vars['error-message'] = $exception->getMessage();
         }
         if ($configuration['errors']['show_exceptions']['trace']) {
             $vars['error-trace'] = $exception->getTrace();
         }
     }
     if (empty($vars)) {
         $vars['error'] = 'Something went wrong';
     }
     /** @var PostProcessor\AbstractPostProcessor $postProcessor */
     $postProcessor = $di->get($configuration['errors']['post_processor'], array('vars' => $vars, 'response' => $e->getResponse()));
     $postProcessor->process();
     if ($eventParams['error'] === \Zend\Mvc\Application::ERROR_CONTROLLER_NOT_FOUND || $eventParams['error'] === \Zend\Mvc\Application::ERROR_ROUTER_NO_MATCH) {
         $e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_501);
     } else {
         $e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_500);
     }
     $e->stopPropagation();
     return $postProcessor->getResponse();
 }
コード例 #15
0
ファイル: Module.php プロジェクト: jbroudou/zf2-cronlock
 public function onBootstrap(\Zend\Mvc\MvcEvent $e)
 {
     $evm = $e->getApplication()->getEventManager();
     $evm->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, function (\Zend\Mvc\MvcEvent $e) {
         $evm = $e->getApplication()->getEventManager();
         $rm = $e->getRouteMatch();
         if ($rm->getParam('cronLock')) {
             //Work out the filename of the lock file
             $config = $e->getApplication()->getServiceManager()->get('Config');
             $dir = isset($config['cronLockDir']) ? $config['cronLockDir'] : '/tmp';
             $filename = preg_replace("([^\\w\\s\\d\\-_~,;:\\[\\]\\(\\).])", '', $rm->getMatchedRouteName());
             $file = "{$dir}/{$filename}";
             $this->fp = fopen($file, "w");
             if (flock($this->fp, LOCK_EX | LOCK_NB)) {
                 //The cron action is not locked
                 $evm->attach(MvcEvent::EVENT_DISPATCH, function ($e) {
                     flock($this->fp, LOCK_UN);
                 });
             } else {
                 //This cron action is locked, so redirect and terminate
                 $rm->setMatchedRouteName('lock-cron')->setParam('controller', 'CronLock\\Controller\\CronLock')->setParam('action', 'lockCron');
                 $e->setRouteMatch($rm);
             }
         }
         return $e;
     });
 }
コード例 #16
0
ファイル: Module.php プロジェクト: AlexandrKozyr/ver_site
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $eventManager->attach(MvcEvent::EVENT_ROUTE, function ($e) {
         $auth = $e->getApplication()->getServiceManager()->get("Auth_Service");
         $application = $e->getApplication();
         $viewModel = $application->getMvcEvent()->getViewModel();
         $viewModel->UserAuth = false;
         if ($auth->hasIdentity()) {
             $viewModel->UserAuth = true;
             $viewModel->UserName = $auth->getStorage()->read()->name;
         }
         $routeMatch = $e->getRouteMatch();
         $controller = $routeMatch->getParam('controller');
         $whitelist = array('Customers\\Controller\\Login');
         if (!in_array($controller, $whitelist)) {
             if (!$auth->hasIdentity()) {
                 $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
                     $controller = $e->getTarget();
                     $controller->plugin('redirect')->toRoute('customers');
                 }, 100);
             }
         }
     });
     //        $config  = new StandardConfig();
     //        $config->setOptions(array(
     //            'remember_me_seconds' => 10,
     //            'name'                => 'zf2',
     //        ));
     //        $manager = new SessionManager($config);
 }
コード例 #17
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
     $fallbackLocale = 'en_US';
     $sm = $e->getApplication()->getServiceManager();
     $sm->get('translator')->setLocale($locale)->setFallbackLocale($fallbackLocale);
     $type = 'phpArray';
     $pattern = './vendor/zendframework/zendframework/resources/languages/%s/Zend_Validate.php';
     $textDomain = 'default';
     $translator = $e->getApplication()->getServiceManager()->get('translator');
     if (file_exists(sprintf($pattern, $locale))) {
         $translator->addTranslationFile($type, sprintf($pattern, $locale), $textDomain);
     } else {
         if (file_exists(sprintf($pattern, preg_replace('/_(.*)/', '', $locale)))) {
             $translator->addTranslationFile($type, sprintf($pattern, preg_replace('/_(.*)/', '', $locale)), $textDomain);
         } else {
             $pattern = sprintf($pattern, preg_replace('/_(.*)/', '', $fallbackLocale));
             $translator->addTranslationFile($type, $pattern, $textDomain);
         }
     }
     \Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
 }
コード例 #18
0
ファイル: Module.php プロジェクト: arstropica/zf-tenstreet
 public function onBootstrap(MvcEvent $e)
 {
     $sm = $e->getApplication()->getServiceManager();
     $app_config = $sm->get('config');
     $app_options = $app_config['app_options'];
     if (array_key_exists('recover_from_fatal', $app_options) && $app_options['recover_from_fatal']) {
         $redirect_url = $app_options['redirect_url'];
         $callback = null;
         if (array_key_exists('fatal_errors_callback', $app_options) && $app_options['fatal_errors_callback']) {
             $callback = $app_options['fatal_errors_callback'];
         }
         register_shutdown_function(array('Application\\Module', 'handleFatalPHPErrors'), $redirect_url, $callback);
     }
     set_error_handler(array('Application\\Module', 'handlePHPErrors'));
     foreach ($app_options['php_settings'] as $key => $value) {
         ini_set($key, $value);
     }
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $logger = $sm->get('Logger');
     $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, function (MvcEvent $e) use($logger) {
         $logger->info('An Exception has occurred. ' . $e->getResult()->exception->getMessage());
     }, -200);
 }
コード例 #19
0
ファイル: Module.php プロジェクト: arbi/MyCode
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $routeMatch = $e->getRouteMatch();
         $parkingLotId = $routeMatch->getParam('parking_lot_id', 0);
         // get the parking lot id
         if (method_exists($controller, 'setParkingLotId')) {
             $serviceManager = $e->getApplication()->getServiceManager();
             $dbAdapter = $serviceManager->get('Zend\\Db\\Adapter\\Adapter');
             $parkingLotExistsValidator = new RecordExists(['adapter' => $dbAdapter, 'table' => DbTables::TBL_PARKING_LOTS, 'field' => 'id']);
             if (!$parkingLotExistsValidator->isValid($parkingLotId) && $parkingLotId != 0) {
                 $url = $e->getRouter()->assemble(['controller' => 'parking', 'action' => 'index'], ['name' => 'parking']);
                 $response = $e->getResponse();
                 $response->getHeaders()->addHeaderLine('Location', $url);
                 $response->setStatusCode(302);
                 $response->sendHeaders();
                 return $response;
             }
             $controller->setParkingLotId($parkingLotId);
         }
     }, 100);
 }
コード例 #20
0
ファイル: Module.php プロジェクト: middleout/doplio-zf2
 /**
  * @param MvcEvent $event
  */
 public function onBootstrap(MvcEvent $event)
 {
     $eventManager = $event->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $app = $event->getApplication();
     $serviceManager = $app->getServiceManager();
     // Set the Query Profiler
     $profiler = new DoplioFirePhpProfiler();
     $capsule = new Capsule();
     $config = $serviceManager->get('config')['database'];
     foreach ($config as $connName => $dbConfig) {
         $capsule->addConnection($dbConfig, $connName);
         if (isset($dbConfig['profiler']) && $dbConfig['profiler'] === TRUE) {
             $profiler->enable();
         }
     }
     //        $capsule->setCacheManager();
     $capsule->bootEloquent();
     $serviceManager->setService('Doplio', $capsule);
     $serviceManager->setService('DoplioFirePhpProfiler', $profiler);
     $eventManager->attach(MvcEvent::EVENT_FINISH, function () use($capsule, $config, $profiler) {
         if ($profiler->isDisabled()) {
             return;
         }
         foreach ($config as $connectionName => $notUsed) {
             $connection = $capsule->getConnection($connectionName);
             foreach ($connection->getQueryLog() as $query) {
                 $profiler->addQuery($query, $connectionName);
             }
         }
         $profiler->showTables();
     });
 }
コード例 #21
0
ファイル: Module.php プロジェクト: zource/zource
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $serviceManager = $e->getApplication()->getServiceManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     if (!Console::isConsole()) {
         $viewHelperManager = $serviceManager->get('ViewHelperManager');
         $formElementErrors = $viewHelperManager->get('formElementErrors');
         $formElementErrors->setMessageOpenFormat('<div class="zui-error">');
         $formElementErrors->setMessageSeparatorString('</div><div class="zui-error">');
         $formElementErrors->setMessageCloseString('</div>');
         $flashMessenger = $viewHelperManager->get('flashMessenger');
         $flashMessenger->setMessageOpenFormat('<div class="zui-alert zui-alert-%s"><p>');
         $flashMessenger->setMessageSeparatorString('</p><p>');
         $flashMessenger->setMessageCloseString('</p><span class="zui-icon zui-icon-x" role="button" tabindex="0"></span></div>');
         /** @var ManagerInterface $sessionManager */
         $sessionManager = $serviceManager->get(ManagerInterface::class);
         $sessionManager->start();
     }
     $helpers = $serviceManager->get('ViewHelperManager');
     $hal = $helpers->get('Hal');
     $hal->getEventManager()->attach('renderCollection.post', [$this, 'onRenderCollection']);
     $hal->getEventManager()->attach('renderEntity.post', [$this, 'onRenderEntity']);
 }
コード例 #22
0
ファイル: PageFragment.php プロジェクト: msingi/msingi
 /**
  * @param $name
  * @return string
  */
 public function __invoke($name)
 {
     if ($this->fragments == null) {
         //
         $serviceManager = $this->event->getApplication()->getServiceManager();
         // get translator
         $translator = $serviceManager->get('Translator');
         $locale = $translator->getLocale();
         $language = \Locale::getPrimaryLanguage($locale);
         // try to get fragments from cache
         $cache = $serviceManager->get('Application\\Cache');
         if ($cache) {
             $cacheKey = sprintf('page-fragments-%s-%s', $this->page->getId(), $language);
             $page_fragments = $cache->getItem($cacheKey);
         }
         // fetch from the DB
         if ($page_fragments == null) {
             /** @var \Doctrine\ORM\EntityManager $entity_manager */
             $entity_manager = $serviceManager->get('Doctrine\\ORM\\EntityManager');
             $page_fragments_repository = $entity_manager->getRepository('Msingi\\Cms\\Entity\\PageFragment');
             $page_fragments = $page_fragments_repository->fetchFragmentsArray($this->page->getId(), $language);
         }
         // store to cache
         if ($cache) {
             $cache->setItem($cacheKey, $page_fragments);
         }
         $this->fragments = $page_fragments;
     }
     return isset($this->fragments[$name]) ? $this->fragments[$name] : '';
 }
コード例 #23
0
 /**
  * Bootstrap session
  *
  * @param MvcEvent $event
  */
 private function bootstrapSession(MvcEvent $event)
 {
     $session = $event->getApplication()->getServiceManager()->get('Zend\\Session\\SessionManager');
     $session->start();
     $container = new Container('initialized');
     if (!isset($container->init)) {
         $serviceManager = $event->getApplication()->getServiceManager();
         $request = $event->getRequest();
         $session->regenerateId();
         $container->init = 1;
         $container->remoteAddr = $request->getServer()->get('REMOTE_ADDR');
         $container->httpUserAgent = $request->getServer()->get('HTTP_USER_AGENT');
         $config = $serviceManager->get('Config');
         if (!isset($config['session'])) {
             return;
         }
         $sessionConfig = $config['session'];
         if (isset($sessionConfig['validators'])) {
             $chain = $session->getValidatorChain();
             foreach ($sessionConfig['validators'] as $validator) {
                 switch ($validator) {
                     case 'Zend\\Session\\Validator\\HttpUserAgent':
                         $validator = new $validator($container->httpUserAgent);
                         break;
                     case 'Zend\\Session\\Validator\\RemoteAddr':
                         $validator = new $validator($container->remoteAddr);
                         break;
                     default:
                         $validator = new $validator();
                 }
                 $chain->attach('session.validate', array($validator, 'isValid'));
             }
         }
     }
 }
コード例 #24
0
ファイル: Module.php プロジェクト: jrodev/ZF2sample
 public function onBootstrap(MvcEvent $e)
 {
     $sm = $e->getApplication()->getServiceManager();
     $gem = $e->getApplication()->getEventManager();
     // Definiendo ServiceFactory aca, para inyectar MVCEvent
     $sm->setFactory('JavaScript\\Service\\StoreScript', function ($sm) use($e) {
         return new \JavaScript\Service\StoreScript($e);
     })->setAlias('storeScript', 'JavaScript\\Service\\StoreScript');
     // Definiendo Event Render
     $gem->attach(MvcEvent::EVENT_RENDER, function (MvcEvent $e) {
         flog('eventRender');
         $sm = $e->getApplication()->getServiceManager();
         $view = $sm->get('ViewRenderer');
         $store = $sm->get('storeScript')->getStore();
         $params = ['baseHost' => $view->base_path("/")] + $store;
         $view->headScript()->appendScript("window.Global=" . json_encode($params, JSON_FORCE_OBJECT));
     }, 100);
     /*
             $e->getApplication()->getEventManager()->getSharedManager()->attach(
                 'Zend\Mvc\Controller\AbstractActionController', MvcEvent::EVENT_DISPATCH, $callback , 100
             );
     
             $e->getApplication()->getEventManager()->getSharedManager()->attach(
                 'Zend\Mvc\Application', MvcEvent::EVENT_DISPATCH_ERROR, $callback , 100
             );*/
 }
コード例 #25
0
ファイル: Module.php プロジェクト: patkings/ejemploZF2
 public function onBootstrap(MvcEvent $e)
 {
     $e->getApplication()->getServiceManager()->get('translator');
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
 }
コード例 #26
0
ファイル: Module.php プロジェクト: tsens/UsersACL
 /**
  * Before Dispatch Function
  *
  * @param MvcEvent $event            
  */
 function boforeDispatch(MvcEvent $event)
 {
     $sm = $event->getApplication()->getServiceManager();
     $config = $sm->get('Config');
     $list = $config['whitelist'];
     $name = $sm->get('request')->getUri()->getPath();
     $controller = $event->getRouteMatch()->getParam('controller');
     $action = $event->getRouteMatch()->getParam('action');
     $session = new Container('User');
     $controller = $event->getRouteMatch()->getParam('controller');
     $action = $event->getRouteMatch()->getParam('action');
     if (!(strpos($name, 'reset-password') || in_array($name, $list)) && $session->offsetExists('userId')) {
         $serviceManager = $event->getApplication()->getServiceManager();
         $roleTable = $serviceManager->get('RoleTable');
         $userRoleTable = $serviceManager->get('UserRoleTable');
         $roleID = $userRoleTable->getUserRoles('user_id = ' . $session->offsetGet('userId'), array('role_id'));
         $roleName = $roleTable->getUserRoles('rid = ' . $roleID[0]['role_id'], array('role_name'));
         $userRole = $roleName[0]['role_name'];
         $acl = $serviceManager->get('Acl');
         $acl->initAcl();
         $status = $acl->isAccessAllowed($userRole, $controller, $action);
         if (!$status) {
             die('Permission denied');
         }
     }
 }
コード例 #27
0
ファイル: Module.php プロジェクト: ruby-project/ruby-admin
 public function setTemplate(MvcEvent $e)
 {
     $result = $e->getResult();
     $router = $e->getRouteMatch();
     $params = $router->getParams();
     if (isset($params['__NAMESPACE__']) && isset($params['__CONTROLLER__']) && isset($params['action'])) {
         $controllerClass = $params['__NAMESPACE__'];
         $moduleNamespace = substr($controllerClass, strpos($controllerClass, '\\'));
         $moduleNamespace = substr($moduleNamespace, 1);
         $moduleNamespace = substr($moduleNamespace, 0, strpos($moduleNamespace, '\\Controller'));
         $templatePath = __DIR__;
         $config = $e->getApplication()->getServiceManager()->get('config');
         if (isset($config['view_manager']['template_map'])) {
             $moduleNamespace = strtolower($moduleNamespace . '/' . $params['__CONTROLLER__']);
             $templatePath = $templatePath . '/view/' . $moduleNamespace . '/' . $params['action'] . '.phtml';
             $moduleNamespace = str_replace('\\', '/', $moduleNamespace);
             $template = $moduleNamespace . '/' . $params['action'];
             $config['view_manager']['template_map'][$template] = $templatePath;
             $result->setTemplate($template);
         }
         //set Title;
         if (isset($config['view_manager']['siteName'])) {
             $siteName = $config['view_manager']['siteName'];
         } else {
             $siteName = $moduleNamespace;
         }
         $viewHelperManager = $e->getApplication()->getServiceManager()->get('viewHelperManager');
         $headTitle = $viewHelperManager->get('headTitle');
         $headTitle->setSeparator(' - ');
         $headTitle->append($params['action']);
         $headTitle->append($siteName);
     }
 }
コード例 #28
0
ファイル: Module.php プロジェクト: klaid83/ms
 public function onBootstrap(MvcEvent $e)
 {
     $app = $e->getApplication();
     $eventManager = $app->getEventManager();
     $serviceLocator = $app->getServiceManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $serviceManager = $e->getApplication()->getServiceManager();
     $eventManager->attachAggregate($serviceLocator->get('Listener.ExceptionStrategy'));
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function (MvcEvent $event) use($serviceManager) {
         $exception = $event->getParam('exception');
         if ($exception) {
             do {
                 $serviceManager->get('Logger')->crit(sprintf("%s:%d %s (%d) [%s]\n", $exception->getFile(), $exception->getLine(), $exception->getMessage(), $exception->getCode(), get_class($exception)));
             } while ($ex = $exception->getPrevious());
             $response = $event->getResponse();
             //				$response->setHeaders(
             //					$response->getHeaders()->addHeaderLine('Location', "/error-page")
             //				);
             $response->setStatusCode(302);
             $response->sendHeaders();
             return $response;
         }
     });
 }
コード例 #29
0
ファイル: Module.php プロジェクト: kevcast/lsrefactoring
 public function onBootstrap(MvcEvent $e)
 {
     // You may not need to do this if you're doing it elsewhere in your
     // application
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     //                      $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
     //             $result = $e->getResult();
     //             $result->setTerminal(TRUE);
     //
     //            });
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'onDispatchError'), 100);
     //           $eventManager->attach('dispatch', array($this,'onDispatchError'), 100);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         $routeMatch = $e->getRouteMatch();
         $actionName = strtolower($routeMatch->getParam('action', 'not-found'));
         // get the action name
         if (isset($config['module_layouts'][$moduleNamespace][$actionName])) {
             $controller->layout($config['module_layouts'][$moduleNamespace][$actionName]);
         } elseif (isset($config['module_layouts'][$moduleNamespace]['default'])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]['default']);
         }
     }, 100);
 }
コード例 #30
0
ファイル: Module.php プロジェクト: rhionair3/myzend
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $application = $e->getApplication();
     $sm = $application->getServiceManager();
     $sharedManager = $eventManager->getSharedManager();
     //Setting layouts
     $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         if (isset($config['module_layouts'][$moduleNamespace])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]);
         }
     }, 100);
     $router = $sm->get('router');
     $request = $sm->get('request');
     $matchedRoute = $router->match($request);
     if (null !== $matchedRoute) {
         //Check the Authentication in every controller different with Login
         //If there is no identity this will redirect to Login
         $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function () use($sm) {
             $sm->get('ControllerPluginManager')->get('Authentication')->isAuthtenticated();
         }, 2);
         // @todo implement ACL
         //Check ACL and show the menu
         //$sharedManager->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function() use ($sm) {
         //    $sm->get('ControllerPluginManager')->get('Privileges')->doAuthorization();
         //}, 2);
     }
 }