/**
  * Costruttore del servizio
  * 
  * @param ContainerInterface $container
  * @return MainKernel
  */
 public function __construct(ContainerInterface $container, SettingManager $settingManager)
 {
     $this->container = $container;
     $this->settingManager = $settingManager;
     $this->logManager = $container->get('techg.log');
     $this->session = $container->get('session');
     $this->requestId = uniqid(rand(), true);
     $this->userBrowserInfo = UtilityManager::getBrowser();
     // Inizializzo la sessione
     $this->session->start();
     $request = $container->get('request');
     // Gestisco il salvataggio nei cookie dell' Id di sessione
     if ($request->cookies->has('tgSessionId')) {
         $this->cookieId = $request->cookies->get('tgSessionId');
     } else {
         if ($request->cookies->has('tgSessionFirstId')) {
             $this->cookieId = uniqid(null, true);
             $this->tempCookieId = $request->cookies->get('tgSessionFirstId');
             $this->cookieObj = new Cookie('tgSessionId', $this->cookieId, time() + 3600 * 24 * 7);
         } else {
             $this->cookieId = 'NO-COOKIE-SUPPORT';
             $tempId = $this->session->getId();
             $this->cookieObj = new Cookie('tgSessionFirstId', $tempId, time() + 3600 * 24 * 1);
         }
         $this->saveCookie = true;
     }
     // Mappo la master request nell'array apposito
     $this->masterRequest = $this->mapRequest($request, true);
     // Qua dovrei lanciare un evento che carichi i moduli attivi nel kernel
     // a quel punto sapendo quali sono attivi, posso ragionare di conseguenza
     $this->userGeoPosition = $container->get('techg.geocoder')->getGeoInfoByIp($this->getMasterRequest('ip'));
     $this->guessedLocale = $this->masterRequest['guessedLocale'];
     // ************************************************************************************************
     // Qui ho finito completamente il l'inizializzazione del kernel
     // ************************************************************************************************
     $this->isInit = true;
     // *********************************************************************
     // Da qui si potrebbe definire PostInit
     // Faccio partire l'evento che indica ai moduli che il kernel è inizializzato
     // *********************************************************************
     $container->get('event_dispatcher')->dispatch(TechGKernelInitEvent::onKernelInit, new TechGKernelInitEvent($this));
 }