public function init()
 {
     // Ensure that persistence cache purger is disabled as legacy cache will be cleared by legacy setup wizard while
     // everything is not ready yet to clear SPI cache (no connection to repository yet).
     $this->persistenceCachePurger->setEnabled(false);
     // we disable injection of settings to Legacy Kernel during setup
     $this->kernelFactory->setBuildEventsEnabled(false);
     /** @var $request \Symfony\Component\HttpFoundation\ParameterBag */
     $request = $this->container->get('request')->request;
     // inject the extra ezpublish-community folders we want permissions checked for
     switch ($request->get('eZSetup_current_step')) {
         case "Welcome":
         case "SystemCheck":
             $this->getLegacyKernel()->runCallback(function () {
                 eZINI::injectSettings(array("setup.ini" => array("directory_permissions" => array("CheckList" => "../ezpublish/logs;../ezpublish/cache;../ezpublish/config;" . eZINI::instance('setup.ini')->variable('directory_permissions', 'CheckList')))));
             });
     }
     $response = new Response();
     $response->setContent($this->getLegacyKernel()->run()->getContent());
     // After the latest step, we can re-use both POST data and written INI settings
     // to generate a local ezpublish_<env>.yml
     // Clear INI cache since setup has written new files
     $this->getLegacyKernel()->runCallback(function () {
         eZINI::injectSettings(array());
         eZCache::clearByTag('ini');
         eZINI::resetAllInstances();
     });
     // Check that eZ Publish Legacy was actually installed, since one step can run several steps
     if ($this->legacyConfigResolver->getParameter('SiteAccessSettings.CheckValidity') == 'false') {
         // If using kickstart.ini, legacy wizard will artificially create entries in $_POST
         // and in this case Symfony Request is not aware of them.
         // We then add them manually to the ParameterBag.
         if (!$request->has('P_chosen_site_package-0')) {
             $request->add($_POST);
         }
         $chosenSitePackage = $request->get('P_chosen_site_package-0');
         // match mode (host, url or port)
         switch ($request->get('P_site_extra_data_access_type-' . $chosenSitePackage)) {
             case "hostname":
             case "port":
                 $adminSiteaccess = $chosenSitePackage . '_admin';
                 break;
             case "url":
                 $adminSiteaccess = $request->get('P_site_extra_data_admin_access_type_value-' . $chosenSitePackage);
         }
         /** @var $configurationDumper \eZ\Bundle\EzpublishLegacyBundle\SetupWizard\ConfigurationDumper */
         $configurationDumper = $this->container->get('ezpublish_legacy.setup_wizard.configuration_dumper');
         $configurationDumper->addEnvironment($this->container->get('kernel')->getEnvironment());
         $configurationDumper->dump($this->container->get('ezpublish_legacy.setup_wizard.configuration_converter')->fromLegacy($chosenSitePackage, $adminSiteaccess), ConfigDumperInterface::OPT_BACKUP_CONFIG);
     }
     return $response;
 }
 public function onConfigScopeChange(ScopeChangeEvent $event)
 {
     $this->kernelLoader->resetKernel();
 }
 public function __construct(\Closure $treeMenuKernelHandler, Loader $legacyKernelFactory, array $options = array())
 {
     $kernelClosure = $legacyKernelFactory->buildLegacyKernel($treeMenuKernelHandler);
     $this->treeMenuKernel = $kernelClosure();
 }