/** * Create and return the router * * Retrieves the "router" key of the Config service, and uses it * to instantiate the router. Uses the TreeRouteStack implementation by * default. * * @param ServiceLocatorInterface $serviceLocator * @param string|null $cName * @param string|null $rName * @return \Zend\Mvc\Router\RouteStackInterface */ public function createService(ServiceLocatorInterface $serviceLocator, $cName = null, $rName = null) { $config = $serviceLocator->get('Config'); $routePluginManager = $serviceLocator->get('RoutePluginManager'); if ($rName === 'ConsoleRouter' || $cName === 'router' && Console::isConsole()) { // We are in a console, use console router. if (isset($config['console']) && isset($config['console']['router'])) { $routerConfig = $config['console']['router']; } else { $routerConfig = array(); } $router = new ConsoleRouter($routePluginManager); } else { // This is an HTTP request, so use HTTP router $router = new HttpRouter($routePluginManager); $routerConfig = isset($config['router']) ? $config['router'] : array(); } if (isset($routerConfig['route_plugins'])) { $router->setRoutePluginManager($routerConfig['route_plugins']); } if (isset($routerConfig['routes'])) { $router->addRoutes($routerConfig['routes']); } if (isset($routerConfig['default_params'])) { $router->setDefaultParams($routerConfig['default_params']); } return $router; }
/** * @param ContainerInterface $container * @return ConsoleRequest|HttpRequest */ public function __invoke(ContainerInterface $container) { if (Console::isConsole()) { return new ConsoleRequest(); } return new HttpRequest(); }
/** * Construct the cookie manager. * * @param ServiceManager $sm Service manager. * * @return \VuFind\Cookie\CookieManager */ public static function getCookieManager(ServiceManager $sm) { if (Console::isConsole()) { return false; } return parent::getCookieManager($sm); }
public function onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $eventManager = $app->getEventManager(); $sm = $app->getServiceManager(); // initialize SessionManager $this->bootstrapSession($e); // Attach UserListener for role and UserProfile handling $listener = $sm->get(UserListener::class); $eventManager->attach($listener); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $eventManager->attach(MvcEvent::EVENT_ROUTE, array($this, 'initTranslator'), -100); $eventManager->attach(MvcEvent::EVENT_ROUTE, array($this, 'setUserLanguage')); // Enable BjyAuthorize when not in console mode if (!\Zend\Console\Console::isConsole()) { // Add ACL information to the Navigation view helper $authorize = $sm->get(Authorize::class); $acl = $authorize->getAcl(); $role = $authorize->getIdentity(); Navigation::setDefaultAcl($acl); Navigation::setDefaultRole($role); } /* @var $translator \Zend\I18n\Translator\Translator */ $translator = $e->getApplication()->getServiceManager()->get('MvcTranslator'); // add Db Loader factory $translator->getPluginManager()->setFactory(I18n\Translator\Loader\Db::class, I18n\Translator\Loader\Factory\DbFactory::class); if ($e->getRouter() instanceof \Zend\Mvc\Router\Http\TranslatorAwareTreeRouteStack) { $e->getRouter()->setTranslator($translator); } }
public function onBootstrap(MvcEvent $e) { if (\Zend\Console\Console::isConsole()) { return; } $eventManager = $e->getApplication()->getEventManager(); $services = $e->getApplication()->getServiceManager(); $eventManager->attach(MvcEvent::EVENT_ROUTE, function (MvcEvent $e) use($services) { /* @var $checkPermissionsListener \Acl\Listener\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); $deactivatedUserListener = $services->get('DeactivatedUserListener'); $deactivatedUserListener->attach($eventManager); $sharedManager = $eventManager->getSharedManager(); $defaultlistener = $services->get('Auth/Listener/AuthAggregateListener'); $defaultlistener->attachShared($sharedManager); $socialProfilesUnconfiguredErrorListener = new SocialProfilesUnconfiguredErrorListener(); $socialProfilesUnconfiguredErrorListener->attach($eventManager); }
/** * Return a ConsoleViewManager if in a Console environment. * * @param ContainerInterface $container * @param string $name * @param callable $callback * @param null|array $options * @return \Zend\Mvc\Console\View\ViewManager|Zend\Mvc\View\Http\ViewManager */ public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null) { if (!Console::isConsole() || !$container->has('ConsoleViewManager')) { return $callback(); } return $container->get('ConsoleViewManager'); }
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); }
/** * @param ContainerInterface $container * @param string $name * @param callable $callback * @param null|array $options * @return ConsoleRequest|\Zend\Http\Request */ public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null) { if (!Console::isConsole()) { return $callback(); } return new ConsoleRequest(); }
/** * Create and return a request instance, according to current environment. * * @param ServiceLocatorInterface $serviceLocator * @return ConsoleRequest|HttpRequest */ public function createService(ServiceLocatorInterface $serviceLocator) { if (Console::isConsole()) { return new ConsoleRequest(); } return new HttpRequest(); }
/** * Create and return a Console adapter instance. * In case we're not in a Console environment, return a dummy stdClass object. * * In order to disable adapter auto-detection and use a specific adapter (and charset), * add the following fields to application configuration, for example: * * 'console' => array( * 'adapter' => 'MyConsoleAdapter', // always use this console adapter * 'charset' => 'MyConsoleCharset', // always use this console charset * ), * 'service_manager' => array( * 'invokables' => array( * 'MyConsoleAdapter' => 'Zend\Console\Adapter\Windows', * 'MyConsoleCharset' => 'Zend\Console\Charset\DESCG', * ) * ) * * @param ServiceLocatorInterface $serviceLocator * @return AdapterInterface|stdClass */ public function createService(ServiceLocatorInterface $serviceLocator) { // First, check if we're actually in a Console environment if (!Console::isConsole()) { // SM factory cannot currently return null, so we return dummy object return new stdClass(); } // Read app config and determine Console adapter to use $config = $serviceLocator->get('Config'); if (!empty($config['console']) && !empty($config['console']['adapter'])) { // use the adapter supplied in application config $adapter = $serviceLocator->get($config['console']['adapter']); } else { // try to detect best console adapter $adapter = Console::detectBestAdapter(); $adapter = new $adapter(); } // check if we have a valid console adapter if (!$adapter instanceof AdapterInterface) { // SM factory cannot currently return null, so we convert it to dummy object return new stdClass(); } // Optionally, change Console charset if (!empty($config['console']) && !empty($config['console']['charset'])) { // use the charset supplied in application config $charset = $serviceLocator->get($config['console']['charset']); $adapter->setCharset($charset); } return $adapter; }
/** * Логгируем информацию об исключении * * @param \Exception $e */ public function logException(\Exception $e) { do { $context = Console::isConsole() ? $_ENV : $_SERVER; $this->getLogger()->crit($e->__toString(), ['context' => print_r($context, true)]); } while ($e = $e->getPrevious()); }
/** * Create and return the view manager for the console environment * * @param ServiceLocatorInterface $serviceLocator * @return ConsoleViewManager */ public function createService(ServiceLocatorInterface $serviceLocator) { if (!Console::isConsole()) { throw new ServiceNotCreatedException('ConsoleViewManager requires a Console environment; console environment not detected'); } return new ConsoleViewManager(); }
/** * Create and return the view manager for the console environment * * @param ContainerInterface $container * @param string $name * @param null|array $options * @return ConsoleViewManager */ public function __invoke(ContainerInterface $container, $name, array $options = null) { if (!Console::isConsole()) { throw new ServiceNotCreatedException('ConsoleViewManager requires a Console environment; console environment not detected'); } return new ConsoleViewManager(); }
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']); }
/** * Create and return a view manager based on detected environment * * @param ServiceLocatorInterface $serviceLocator * @return ConsoleViewManager|HttpViewManager */ public function createService(ServiceLocatorInterface $serviceLocator) { if (Console::isConsole()) { return $serviceLocator->get('ConsoleViewManager'); } return $serviceLocator->get('HttpViewManager'); }
/** * Create and return the router * * Retrieves the "router" key of the Config service, and uses it * to instantiate the router. Uses the TreeRouteStack implementation by * default. * * @param ServiceLocatorInterface $serviceLocator * @param string|null $cName * @param string|null $rName * @return \Zend\Mvc\Router\RouteStackInterface */ public function createService(ServiceLocatorInterface $serviceLocator, $cName = null, $rName = null) { $config = $serviceLocator->has('Config') ? $serviceLocator->get('Config') : array(); // Defaults $routerClass = 'Zend\\Mvc\\Router\\Http\\TreeRouteStack'; $routerConfig = isset($config['router']) ? $config['router'] : array(); // Console environment? if ($rName === 'ConsoleRouter' || $cName === 'router' && Console::isConsole()) { // We are in a console, use console router defaults. $routerClass = 'Zend\\Mvc\\Router\\Console\\SimpleRouteStack'; $routerConfig = isset($config['console']['router']) ? $config['console']['router'] : array(); } // Obtain the configured router class, if any if (isset($routerConfig['router_class']) && class_exists($routerConfig['router_class'])) { $routerClass = $routerConfig['router_class']; } // Inject the route plugins if (!isset($routerConfig['route_plugins'])) { $routePluginManager = $serviceLocator->get('RoutePluginManager'); $routerConfig['route_plugins'] = $routePluginManager; } // Obtain an instance $factory = sprintf('%s::factory', $routerClass); return call_user_func($factory, $routerConfig); }
/** * Initialize the module * * @param ModuleManager $m Module manager * * @return void */ public function init(ModuleManager $m) { if (!Console::isConsole()) { $em = StaticEventManager::getInstance(); $em->attach('Zend\\Mvc\\Application', 'bootstrap', [$this, 'registerBaseUrl'], 100000); } }
/** * Create and return a request instance, according to current environment. * * @param \Zend\ServiceManager\ServiceLocatorInterface $services * @return ConsoleRequest|HttpRequest */ public function __invoke($services) { if (Console::isConsole()) { return new ConsoleRequest(); } return new HttpRequest(); }
public static function getIP($just_remote = true) { if (Console::isConsole()) { return '127.0.0.1'; } // O único realmente seguro de se confiar é o REMOTE_ADDR $validator = new \Zend\Validator\Ip(); $remote = $_SERVER['REMOTE_ADDR']; if (!$validator->isValid($remote)) { throw new \RuntimeException("Endereço de IP '{$remote}' inválido"); } if ($just_remote) { return $remote; } $ips = [$remote]; if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; if ($validator->isValid($ip)) { $ips[2] = $ip; } } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; if ($validator->isValid($ip)) { $ips[1] = $ip; } } return $ips; }
public function onBootstrap(MvcEvent $mvcEvent) { if (Console::isConsole()) { return; } $application = $mvcEvent->getApplication(); $serviceLocator = $application->getServiceManager(); $strategy = $serviceLocator->get(AccessListener::class); $eventManager = $application->getEventManager(); $strategy->attach($eventManager); // try { // $remote = new RemoteAddress; // $remote->setUseProxy(true); // $mapper = $serviceManager->get(UserAuthenticationLogMapper::class); // $logEntity = new UserAuthenticationLog( // $authEvent->getIdentity(), // new \DateTime("now"), // $remote->getIpAddress() // ); // $mapper->save($logEntity); // // } catch (\Exception $x) { // // } // }); }
/** * Create and return a request instance, according to current environment. * * @param ServiceLocatorInterface $serviceLocator * @return HttpViewManager */ public function createService(ServiceLocatorInterface $serviceLocator) { if (Console::isConsole()) { return new ConsoleViewManager(); } return new HttpViewManager(); }
/** * Support method for init() -- figure out which theme option is active. * * @param Request $request Request object (for obtaining user parameters). * * @return string */ protected function pickTheme(Request $request) { if (Console::isConsole()) { return $this->config->theme; } else { return parent::pickTheme($request); } }
/** * @param ContainerInterface $container * @param string $name * @param callable $callback * @param null|array $options * @return HelperPluginManager */ public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null) { $plugins = $callback(); if (!Console::isConsole()) { return $plugins; } return $this->injectOverrideFactories($plugins, $container); }
/** * @param ContainerInterface $container * @param string $name * @param callable $callback * @param null|array $options * @return \Zend\Mvc\Router\RouteStackInterface */ public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null) { // Console environment? if ($name === 'ConsoleRouter' || in_array(strtolower($name), $this->knownRouterNames, true) && Console::isConsole()) { return $container->get('ConsoleRouter'); } return $callback(); }
/** * Reset the application for isolation */ protected function setUp() { if ($this->applicationConfig === NULL) { $this->setApplicationConfig(include 'config/application.config.php'); } $this->usedConsoleBackup = Console::isConsole(); $this->reset(); }
public function onDispatch(MvcEvent $e) { if (!Console::isConsole()) { $server = $e->getApplication()->getServiceManager()->get('ZF\\OAuth2\\Service\\OAuth2Server'); if (!$server->verifyResourceRequest(OAuth2Request::createFromGlobals())) { throw new \Exception('Not Authorized'); } } }
/** * @param ContainerInterface $container * @param string $name * @param callable $callback * @param null|array $options * @return \Zend\Mvc\ApplicationInterface */ public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null) { $application = $callback(); if (!Console::isConsole()) { return $application; } $container->get('ConsoleViewManager')->attach($application->getEventManager()); return $application; }
/** * Create and return the view helper manager * * @param ServiceLocatorInterface $serviceLocator * @return ViewHelperInterface * @throws Exception\RuntimeException */ public function createService(ServiceLocatorInterface $serviceLocator) { $plugins = parent::createService($serviceLocator); foreach ($this->defaultHelperMapClasses as $configClass) { if (is_string($configClass) && class_exists($configClass)) { $config = new $configClass(); if (!$config instanceof ConfigInterface) { throw new Exception\RuntimeException(sprintf('Invalid service manager configuration class provided; received "%s", expected class implementing %s', $configClass, 'Zend\\ServiceManager\\ConfigInterface')); } $config->configureServiceManager($plugins); } } // Configure URL view helper with router $plugins->setFactory('url', function () use($serviceLocator) { $helper = new ViewHelper\Url(); $router = Console::isConsole() ? 'HttpRouter' : 'Router'; $helper->setRouter($serviceLocator->get($router)); $match = $serviceLocator->get('application')->getMvcEvent()->getRouteMatch(); if ($match instanceof RouteMatch) { $helper->setRouteMatch($match); } return $helper; }); $plugins->setFactory('basepath', function () use($serviceLocator) { $config = $serviceLocator->has('Config') ? $serviceLocator->get('Config') : array(); $basePathHelper = new ViewHelper\BasePath(); if (Console::isConsole() && isset($config['view_manager']) && isset($config['view_manager']['base_path_console'])) { $basePathHelper->setBasePath($config['view_manager']['base_path_console']); return $basePathHelper; } if (isset($config['view_manager']) && isset($config['view_manager']['base_path'])) { $basePathHelper->setBasePath($config['view_manager']['base_path']); return $basePathHelper; } $request = $serviceLocator->get('Request'); if (is_callable(array($request, 'getBasePath'))) { $basePathHelper->setBasePath($request->getBasePath()); } return $basePathHelper; }); /** * Configure doctype view helper with doctype from configuration, if available. * * Other view helpers depend on this to decide which spec to generate their tags * based on. This is why it must be set early instead of later in the layout phtml. */ $plugins->setFactory('doctype', function () use($serviceLocator) { $config = $serviceLocator->has('Config') ? $serviceLocator->get('Config') : array(); $config = isset($config['view_manager']) ? $config['view_manager'] : array(); $doctypeHelper = new ViewHelper\Doctype(); if (isset($config['doctype']) && $config['doctype']) { $doctypeHelper->setDoctype($config['doctype']); } return $doctypeHelper; }); return $plugins; }
public function onStartBootstrap($e) { if (!\Zend\Console\Console::isConsole()) { $manager = $e->getApplication()->getServiceManager()->get(Manager::class); if (!$manager->getEventManager()->getListeners('install')->isEmpty()) { die('Please first install this application'); } } }
/** * @param MvcEvent $e * @return void|ViewModel */ public function handleDispatchErrors(MvcEvent $e) { $exception = $e->getParam('exception'); $routeMatch = $e->getRouteMatch(); if (!$routeMatch || $exception instanceof UnauthorizedException) { // We don't handle permissions errors or unmatched routes return; } // We will do the final handling here $e->stopPropagation(); if (Console::isConsole()) { return; } $error = $e->getError(); $model = new ViewModel( [ 'message' => 'An error occurred. Good luck!<br/><br/><pre>' . $exception->getMessage() . '</pre>', 'reason' => $error, 'exception' => $exception, ] ); $model->setTemplate('error/404'); $e->getViewModel()->addChild($model); $response = $e->getResponse(); $response->setStatusCode(404); return $model; }