Author: Marc Weistroff (marc.weistroff@gmail.com)
Author: Jérôme Vieilledent (lolautruche@gmail.com)
 /**
  * Factory for DistributionBundle\Configurator\Configurator with 'secret' step
  *
  * This is kept similar to SensioDistributionBundle::boot() for compatibility
  *
  * @param string $kernelDir
  *
  * @return \Sensio\Bundle\DistributionBundle\Configurator\Configurator
  */
 public function buildWebConfigurator($kernelDir)
 {
     $configurator = new Configurator($kernelDir);
     $configurator->addStep(new DoctrineStep($configurator->getParameters()));
     $configurator->addStep(new SecretStep($configurator->getParameters()));
     return $configurator;
 }
 /**
  * Dumps settings contained in $configArray in ezpublish.yml
  *
  * @param array $configArray Hash of settings.
  * @param int $options A binary combination of options. See class OPT_* class constants in {@link \eZ\Publish\Core\MVC\Symfony\ConfigDumperInterface}
  *
  * @return void
  */
 public function dump(array $configArray, $options = ConfigDumperInterface::OPT_DEFAULT)
 {
     $configPath = "{$this->rootDir}/config";
     $mainConfigFile = "{$configPath}/ezpublish.yml";
     if ($this->fs->exists($mainConfigFile) && $options & static::OPT_BACKUP_CONFIG) {
         $this->backupConfigFile($mainConfigFile);
     }
     file_put_contents($mainConfigFile, Yaml::dump($configArray, 7));
     // Now generates environment config files
     foreach (array_keys($this->envs) as $env) {
         $configFile = "{$configPath}/ezpublish_{$env}.yml";
         // Add the import statement for the root YAML file
         $envConfigArray = array('imports' => array(array('resource' => 'ezpublish.yml')));
         // File already exists, handle possible options
         if ($this->fs->exists($configFile) && $options & static::OPT_BACKUP_CONFIG) {
             $this->backupConfigFile($configFile);
         }
         file_put_contents($configFile, Yaml::dump($envConfigArray, 7));
     }
     // Handling %secret%
     $this->sensioConfigurator->mergeParameters(array('secret' => $this->sensioConfigurator->getStep(1)->secret));
     $this->sensioConfigurator->write();
     $this->clearCache();
 }