public function onBootstrap(EventInterface $e) { /** @var \Zend\Mvc\Application $app */ $app = $e->getTarget(); $config = $app->getConfig(); $sessionConfig = new SessionConfig(); if (isset($config['session']['options'])) { $options = $config['session']['options']; if (isset($options['cookie_domain']) && strpos($_SERVER['SERVER_NAME'], $options['cookie_domain']) === false) { $options['cookie_domain'] = $_SERVER['SERVER_NAME']; } $sessionConfig->setOptions($options); } $serviceManager = $app->getServiceManager(); $storage = null; $saveHandler = null; if ($serviceManager->has('Session\\Service\\Storage', false)) { /** @var \Zend\Session\Storage\StorageInterface $storage */ $storage = $serviceManager->get('Session\\Service\\Storage'); } if ($serviceManager->has('Session\\Service\\SaveHandler', false)) { /** @var \Zend\Session\SaveHandler\SaveHandlerInterface $saveHandler */ $saveHandler = $serviceManager->get('Session\\Service\\SaveHandler'); } Container::setDefaultManager(new SessionManager($sessionConfig, $storage, $saveHandler)); }
/** * {@inheritdoc} */ public function __invoke() { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions(['use_cookies' => true, 'cookie_path' => '/', 'cookie_httponly' => true, 'name' => 'zpc', 'cookie_secure' => $this->isSsl(), 'hash_bits_per_character' => 6, 'hash_function' => 1]); $sessionManager = new SessionManager($sessionConfig); return $sessionManager; }
public function __invoke(ContainerInterface $container) { $options = $container->get('config')['session']['options']; $config = new SessionConfig(); $config->setOptions($options); return $config; }
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(); } }); }
/** * @return void */ private function init() { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($this->config); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); Container::setDefaultManager($sessionManager); }
public function initSession($config) { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); Container::setDefaultManager($sessionManager); }
public function sessionStart(MvcEvent $event) { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions(array()); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); Container::setDefaultManager($sessionManager); }
public function setDbHandler() { $tableGateway = new TableGateway('session', $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter')); $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions()); //open session $sessionConfig = new SessionConfig(); $saveHandler->open($sessionConfig->getOption('save_path'), $this->namespace); $this->session->getManager()->setSaveHandler($saveHandler); }
public function onBootstrap(\Zend\EventManager\EventInterface $e) { $config = $e->getApplication()->getServiceManager()->get('Configuration'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig, null, null); Container::setDefaultManager($sessionManager); $sessionManager->start(); }
public function getServiceConfig() { return array('factories' => array('sessionconfig' => function ($sm) { $config = $sm->get('Config'); $sessionConfig = new SessionConfig(); if (isset($config['session'])) { $sessionConfig->setOptions($config['session']); } return $sessionConfig; })); }
public function onBootstrap(MvcEvent $e) { /* @var $sm \Zend\ServiceManager\ServiceManager */ $sm = $e->getApplication()->getServiceManager(); $config = $sm->get('Config'); // bootstrap session $tableGateway = new TableGateway($config['app']['session.tableName'], $sm->get('dbAdapter')); $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions()); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->setSaveHandler($saveHandler); $sessionManager->start(); Container::setDefaultManager($sessionManager); // translate $sm->get('translator'); $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); // bootstrap locale // $headers = $app->getRequest()->getHeaders(); // Locale::setDefault($config['locale']['default']); // if($headers->has('Accept-Language')) { // $locales = $headers->get('Accept-Language')->getPrioritized(); // // Loop through all locales, highest priority first // foreach($locales as $locale) { // if(!!($match = Locale::lookup($config['locale']['supported'], $locale->typeString))) { // // The locale is one of our supported list // Locale::setDefault($match); // break; // } // } // if(!$match) { // // Nothing from the supported list is a match // Locale::setDefault($config['locale']['default']); // } // } // switch layout $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); }
public function authenticate(Adapter\AdapterInterface $adapter = null) { $result = parent::authenticate($adapter); if ($result->isValid()) { // Set authentication indicator cookie $lifetime = (int) $this->sessionConfig->getCookieLifetime(); $expires = $lifetime !== 0 ? time() + $lifetime : null; $lifetime = $lifetime !== 0 ? $lifetime : null; $this->setCookie(true, $expires, $lifetime); } return $result; }
public function onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $sm = $app->getServiceManager(); $request = $app->getRequest(); $response = $app->getResponse(); $appConfig = $sm->get('Configuration'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($appConfig['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); $responseHeaders = $response->getHeaders(); $requestHeaders = $request->getHeaders(); $this->checkCloudFlareHttpHeader(); $requestUriPath = $request->getUri()->getPath(); $requestExtension = pathinfo($requestUriPath, PATHINFO_EXTENSION); if (!in_array($requestExtension, ['js', 'css'])) { $eventManager = $app->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $sharedManager = $eventManager->getSharedManager(); $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) use($sm) { $controller = $e->getTarget(); $controller->getEventManager()->attachAggregate($sm->get('Visitor')); }, 2); $client = new RemoteAddress(); $queryParams = $request->getQuery(); $setPartnerId = (isset($queryParams['gid']) and is_numeric($queryParams['gid'])) ? ['gid' => (int) $queryParams['gid'], 'url' => $request->getUri()] : FALSE; $setLang = (isset($queryParams['lang']) and is_string($queryParams['lang'])) ? ['lang' => $queryParams['lang'], 'url' => $request->getUri()] : FALSE; $setCurrency = (isset($queryParams['cur']) and is_string($queryParams['cur'])) ? ['cur' => $queryParams['cur'], 'url' => $request->getUri()] : FALSE; if ($requestHeaders->has('Accept-Language')) { $browserLang = $requestHeaders->get('Accept-Language')->getPrioritized(); } else { $browserLang = FALSE; } if ($requestHeaders->has('User-Agent')) { $userAgent = $requestHeaders->get('User-Agent')->getFieldValue(); } else { $userAgent = FALSE; } if ($requestHeaders->has('Referer')) { $referer = $requestHeaders->get('Referer'); } else { $referer = FALSE; } $eventManager->trigger('detectVisitor', $this, array('setLang' => $setLang, 'setCurrency' => $setCurrency, 'browserLang' => $browserLang, 'userAgent' => $userAgent, 'referer' => $referer, 'request' => $request, 'clientIp' => $client->getIpAddress(), 'clientProxy' => $client->getUseProxy(), 'setPartnerId' => $setPartnerId, 'sessionManager' => $sessionManager, 'response' => $response, 'responseHeaders' => $responseHeaders, 'requestHeaders' => $requestHeaders, 'serviceLocator' => $sm)); $eventManager->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, array($this, 'onPreDispatch')); } $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); GlobalAdapterFeature::setStaticAdapter($dbAdapter); }
public function __invoke() { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($this->config['options']); $sessionManager = new SessionManager($sessionConfig); if (class_exists(\Redis::class)) { $saveHandler = new Redis($this->config['redis']['host'], $this->config['redis']['port'], $this->config['redis']['password']); $sessionManager->setSaveHandler($saveHandler); $sessionManager->start(); } else { trigger_error('Redis extension is not found. ' . \Staticus\Auth\AuthSessionMiddleware::class . ' will not work.', E_USER_NOTICE); } return $sessionManager; }
public function initSession($config, \Zend\ServiceManager\ServiceManager $sm) { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config); $sessionManager = new SessionManager($sessionConfig); $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid')); $sessionManager->getValidatorChain()->attach('session.validate', array(new RemoteAddr(), 'isValid')); $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $tableGateway = new TableGateway(new TableIdentifier('sessions', 'users'), $dbAdapter); $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions()); $sessionManager->setSaveHandler($saveHandler); $sessionManager->start(); Container::setDefaultManager($sessionManager); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Application $app */ public function register(Application $app) { $app['zend.session.handler._factory'] = $app->protect(function ($type, $options) use($app) { switch ($type) { case 'SilexCMF\\ZendSession\\SaveHandler\\Db': return new Db($app[$options['connection']], new DbOptions()); case 'Zend\\Session\\SaveHandler\\MongoDB': return new MongoDB($app['mongo'], new MongoDBOptions($options)); } return null; }); $app['zend.session.manager'] = $app->share(function () use($app) { $options = isset($app['zend.session.options']) ? $app['zend.session.options'] : []; $config = null; if (isset($options['config'])) { $config = new SessionConfig(); $config->setOptions($options['config']); } $storage = null; if (isset($options['storage'])) { $storage = Factory::factory($options['storage']['type'], isset($options['storage']['options']) ? $options['storage']['options'] : []); } $handler = null; if (isset($options['handler'])) { $handler = $app['zend.session.handler._factory']($options['handler']['type'], isset($options['handler']['options']) ? $options['handler']['options'] : []); } $manager = new SessionManager($config, $storage, $handler); if (isset($options['validators'])) { /* @var $request \Symfony\Component\HttpFoundation\Request */ $request = $app['request_stack']->getCurrentRequest(); foreach ($options['validators'] as $validator) { switch ($validator) { case 'Zend\\Session\\Validator\\HttpUserAgent': $validator = new $validator($request->server->get('HTTP_USER_AGENT')); break; case 'Zend\\Session\\Validator\\RemoteAddr': $validator = new $validator($request->server->get('REMOTE_ADDR')); break; default: $validator = new $validator(); } $manager->getValidatorChain()->attach('session.validate', array($validator, 'isValid')); } } Container::setDefaultManager($manager); return $manager; }); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $request = $e->getApplication()->getServiceManager()->get('Request'); $moduleRouteListener->attach($eventManager); $adapter = $e->getApplication()->getServiceManager()->get('Zend\\Db\\Adapter\\Adapter'); $config = $e->getApplication()->getServiceManager()->get('Configuration'); $locale = null; $eventManager->attach(new UserRegisterListener($adapter)); $eventManager->attach(new LogListener()); // Add ACL information to the Navigation view helper $authorize = $e->getApplication()->getServiceManager()->get('BjyAuthorize\\Service\\Authorize'); $acl = $authorize->getAcl(); $role = $authorize->getIdentity(); \Zend\View\Helper\Navigation::setDefaultAcl($acl); \Zend\View\Helper\Navigation::setDefaultRole($role); // translating system $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); $session = new Container('base'); // Get the visitor language selection $translator = $e->getApplication()->getServiceManager()->get('translator'); // get the locale from the cookie $headCookie = $request->getHeaders()->get('Cookie'); if (!empty($headCookie) && array_key_exists('locale', get_object_vars($headCookie))) { $locale = $headCookie->locale; } if (empty($locale)) { // if there is not set any cookie $locale = $session->offsetGet('locale'); // Get the locale from the session if (empty($locale)) { // if there is not any session set yet $headers = $request->getHeaders(); if ($headers->has('Accept-Language')) { $locales = $headers->get('Accept-Language')->getPrioritized(); $first = array_shift($locales); $locale = $first->getLanguage(); if (!empty($locale) && 2 == strlen($locale)) { $locale .= "_" . strtoupper($locale); } } if (empty($locale)) { // if the browser has no locale set, we have to get the default INTL global locale setting $locale = \Locale::getPrimaryLanguage(\Locale::getDefault()); // Gets the default locale value from the INTL global 'default_locale' } } } else { #\Zend\Debug\debug::dump("Cookie set with locale: $locale"); } $translator->setLocale(\Locale::acceptFromHttp($locale)); $translator->setLocale($locale)->setFallbackLocale('en_US'); \Zend\Validator\AbstractValidator::setDefaultTranslator($translator); \Zend\Validator\AbstractValidator::setDefaultTranslatorTextDomain(); }
public function onBootstrap(MvcEvent $e) { $evm = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($evm); /** @var ServiceManager $sm */ $sm = $e->getApplication()->getServiceManager(); $evm->attachAggregate($sm->get('App\\ExceptionLoggerListener')); $config = $e->getApplication()->getServiceManager()->get('config'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); SessionContainer::setDefaultManager($sessionManager); $evm->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) { $this->initEnv($e); }, 100); }
/** * @dataProvider optionsProvider */ public function testSetOptionsTranslatesUnderscoreSeparatedKeys($option, $getter, $value) { $options = array($option => $value); $this->config->setOptions($options); if ('getOption' == $getter) { $this->assertSame($value, $this->config->getOption($option)); } else { $this->assertSame($value, $this->config->{$getter}()); } }
public function initSession($config) { $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config); $sessionManager = new SessionManager($sessionConfig); $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid')); /* $sessionManager->getValidatorChain() ->attach( 'session.validate', array(new RemoteAddr(), 'isValid') );*/ $sessionManager->start(); /** * Optional: If you later want to use namespaces, you can already store the * Manager in the shared (static) Container (=namespace) field */ Container::setDefaultManager($sessionManager); }
/** * Run for every request to the system. * * This function does a lot. It register all kinds of event. * Logs critical error. Select correct layouts, just to * name a few points.... * * @param MvcEvent $e */ public function onBootstrap(MvcEvent $e) { $logger = $e->getApplication()->getServiceManager()->get('Logger'); //CONFIG // get config values from the application // config files. $config = $e->getApplication()->getServiceManager()->get('Configuration'); //SESSION // config and start session $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); //SHUT DOWN // register shutdown function that will log a critical message // register_shutdown_function(function () use($logger) { if ($e = error_get_last()) { $logger->critical("register_shutdown_function: " . $e['message'] . " in " . $e['file'] . ' line ' . $e['line']); echo "Smá vandræði"; } }); //EVENT MANAGER // get event manager and attache event handlers to it. These // event are something required for the MVC to work. And // error events in the MVC application; ie. if something // goes wrong in Dispatch or Rendering, these events will be called, // they will log a critical message $eventManager = $e->getApplication()->getEventManager(); /** @var $eventManager \Zend\EventManager\Event */ $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $eventManager->attach($e->getApplication()->getServiceManager()->get('Stjornvisi\\Event\\SystemExceptionListener')); $eventManager->attach($e->getApplication()->getServiceManager()->get('Stjornvisi\\Event\\PersistenceLoginListener')); $eventManager->attach($e->getApplication()->getServiceManager()->get('Stjornvisi\\Event\\LayoutSelectListener')); $eventManager->getSharedManager()->attach(__NAMESPACE__, 'notify', $e->getApplication()->getServiceManager()->get('Stjornvisi\\Event\\NotifyListener')); }
public function onBootstrap(EventInterface $e) { // get managers $eventManager = $e->getApplication()->getEventManager(); /* $eventManager->attach( 'render', array($this, 'registerJsonStrategy'), 100 ); */ $serviceManager = $e->getApplication()->getServiceManager(); // attach module listener $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); // add application listener /* if ($e->getRequest()) { $uri = $e->getRequest()->getUri(); if (false === strpos($uri, 'json')) { $eventManager->attachAggregate(new ApplicationListener()); } } */ $eventManager->attachAggregate(new ApplicationListener()); // get config $config = $serviceManager->get('config'); // configure session $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); // get filter and validator manager $filterManager = $serviceManager->get('FilterManager'); $validatorManager = $serviceManager->get('ValidatorManager'); // add custom filters and validators StaticFilter::setPluginManager($filterManager); StaticValidator::setPluginManager($validatorManager); }
/** * {@inheritDoc} */ public function setCookieDomain($cookieDomain) { $cookieDomain = (string) $cookieDomain; if (empty($cookieDomain)) { $this->cookieDomain = ''; $this->setStorageOption('cookie_domain', ''); } else { $subdomains = false; if ('.' === $cookieDomain[0]) { $subdomains = true; $cookieDomain = ltrim($cookieDomain, '.'); } parent::setCookieDomain($cookieDomain); if ($subdomains) { $this->setStorageOption('cookie_domain', $this->cookieDomain = '.' . $this->cookieDomain); } } return $this; }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $adapter = $e->getApplication()->getServiceManager()->get('Zend\\Db\\Adapter\\Adapter'); $sm = $e->getApplication()->getServiceManager(); $config = $e->getApplication()->getServiceManager()->get('Configuration'); $settings = $e->getApplication()->getServiceManager()->get('SettingsService'); $eventManager->attach(new UserRegisterListener($adapter)); $eventManager->attach(new LogListener()); // Add ACL information to the Navigation view helper $authorize = $e->getApplication()->getServiceManager()->get('BjyAuthorize\\Service\\Authorize'); $acl = $authorize->getAcl(); $role = $authorize->getIdentity(); \Zend\View\Helper\Navigation::setDefaultAcl($acl); \Zend\View\Helper\Navigation::setDefaultRole($role); // translating system $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); $session = new Container('base'); // Get the visitor language selection $translator = $e->getApplication()->getServiceManager()->get('translator'); $locale = $session->offsetGet('locale'); // Get the locale if (empty($locale)) { $locale = \Locale::getPrimaryLanguage(\Locale::getDefault()); // Get the locale } if (!empty($locale) && 2 == strlen($locale)) { $locale .= "_" . strtoupper($locale); } $translator->setLocale($locale)->setFallbackLocale('en_US'); $isCompress = $settings->getValueByParameter('Base', 'iscompressed'); if ($isCompress) { $eventManager->getSharedManager()->attach('Zend\\Mvc\\Application', 'finish', array($this, 'compressHtml'), 1002); } }
/** * Initialize Session data * * @param ServiceManager $serviceManager Service manager * @param DbAdapter $dbAdapter Database adapter * * @return void */ public function initSession(ServiceManager $serviceManager, DbAdapter $dbAdapter) { $coreConfig = $serviceManager->get('CoreConfig'); $sessionConfig = new SessionConfig(); $sessionConfig->setStorageOption('gc_probability', 1); $sessionConfig->setStorageOption('gc_divisor', 100); $sessionConfig->setStorageOption('save_path', $coreConfig->getValue('session_path')); $sessionConfig->setStorageOption('gc_maxlifetime', $coreConfig->getValue('session_lifetime')); $sessionConfig->setStorageOption('cookie_path', $coreConfig->getValue('cookie_path')); $sessionConfig->setStorageOption('cookie_domain', $coreConfig->getValue('cookie_domain')); $sessionManager = new SessionManager($sessionConfig); SessionContainer::setDefaultManager($sessionManager); if ($coreConfig->getValue('session_handler') == CoreConfig::SESSION_DATABASE) { $tablegatewayConfig = new DbTableGatewayOptions(array('idColumn' => 'id', 'nameColumn' => 'name', 'modifiedColumn' => 'updated_at', 'lifetimeColumn' => 'lifetime', 'dataColumn' => 'data')); $sessionTable = new SessionTableGateway(new TableGateway('core_session', $dbAdapter), $tablegatewayConfig); $sessionManager->setSaveHandler($sessionTable); } $sessionManager->start(); }
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"'); } } } }
public function getServiceConfig() { return array('factories' => array('albumTransformerService' => 'RestServerDemo\\Service\\AlbumTransformerFactory', 'songTransformerService' => 'RestServerDemo\\Service\\SongsTransformerFactory', 'sessionconfig' => function ($sm) { $config = $sm->get('Config'); $sessionConfig = new SessionConfig(); if (isset($config['session'])) { $sessionConfig->setOptions($config['session']); } return $sessionConfig; })); }
public function bootstrapSession(MvcEvent $e) { $serviceManager = $e->getApplication()->getServiceManager(); $sessionConfig = new SessionConfig(); $config = $serviceManager->get('Config'); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); Container::setDefaultManager($sessionManager); //prevent session fixation by generating new session id every 5 min $session = new Container(); //uses the "Default" namespace if (!isset($session->generated) || $session->generated < time() - 300) { $sessionManager->regenerateId(); $session->generated = time(); } }
/** * Create a session manager using the cache manager as storage * @return Zend\Session\Manager */ public function _initSessionManager() { $container = $this; $this['sessionManager'] = $this->share(function () use($container) { $sessionConfigs = $container['configs']['session']; $saveHandler = new Cache($container['cacheManager']); $config = new SessionConfig(); $config->setOptions($sessionConfigs); $manager = new SessionManager($config); $manager->setSaveHandler($saveHandler); Container::setDefaultManager($manager); return $manager; }); }
use JeremyKendall\Password\PasswordValidator; use JeremyKendall\Slim\Auth\Adapter\Db\PdoAdapter; use JeremyKendall\Slim\Auth\Bootstrap; use JeremyKendall\Slim\Auth\Exception\HttpForbiddenException; use JeremyKendall\Slim\Auth\Exception\HttpUnauthorizedException; use Zend\Authentication\Storage\Session as SessionStorage; use Zend\Session\Config\SessionConfig; use Zend\Session\SessionManager; require '../lib/Acl.php'; require '../settings.php'; $app = new \Slim\slim(array('mode' => 'developement', 'debug' => true)); // Configure Slim Auth components $validator = new PasswordValidator(); $adapter = new PdoAdapter(getDb(), 'users', 'username', 'password', $validator); $acl = new lib\Acl(); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions(array('remember_me_seconds' => 60 * 60 * 24 * 7, 'name' => $applicationFolderName)); $sessionManager = new SessionManager($sessionConfig); $sessionManager->rememberMe(); $storage = new SessionStorage(null, null, $sessionManager); $authBootstrap = new Bootstrap($app, $adapter, $acl); $authBootstrap->setStorage($storage); $authBootstrap->bootstrap(); require '../lib/notorm/NotORM.php'; $pdo = new PDO('mysql:dbhost=' . $hostname . ';dbname=' . $database . ';charset=utf8', $dbuser, $dbpassword); $db = new NotORM($pdo); /* Get users */ $app->get('/users', function () use($app, $db) { try { $users = array(); foreach ($db->users() as $user) {