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); }