public function execute($config_files)
 {
     // generate prefix
     $first_config_file = basename(reset($config_files));
     $prefix = substr($first_config_file, 0, strpos($first_config_file, '.'));
     // retrieve yaml data
     $config = $this->parseYamls($config_files);
     // get current environment
     $environment = sfConfig::get('sf_environment');
     // merge default and environment specific config
     $main_config = isset($config['all']) ? $config['all'] : array();
     $env_config = isset($config[$environment]) ? $config[$environment] : array();
     $config = sfToolKit::arrayDeepMerge($main_config, $env_config);
     $code = sprintf("<?php\n" . "// auto-generated by nahoWikiConfigHandler\n" . "// date: %s\n" . "sfConfig::set('%s_%s', %s);", date('Y-m-d H:i:s'), self::GLOBAL_PREFIX, $prefix, var_export($config, 1));
     return $code;
 }
 /**
  * execute
  *
  * @param string $configFiles
  * @return void
  */
 public function execute($configFiles)
 {
     $configs = $this->parseYamls($configFiles);
     $env = sfConfig::get('sf_environment');
     $defaultConfig = isset($configs['all']) ? $configs['all'] : array();
     $envConfig = isset($configs[$env]) ? $configs[$env] : array();
     $config = sfToolKit::arrayDeepMerge($defaultConfig, $envConfig);
     $globalCode = $this->buildPhpCodeArray('global', $config);
     $connectionCode = array();
     if (isset($config['connections'])) {
         foreach ($config['connections'] as $name => $connectionConfig) {
             $connectionCode = array_merge($connectionCode, $this->buildPhpCodeArray($name, $connectionConfig));
         }
     }
     $code = sprintf("<?php\n" . "// auto-generated by sfDoctrineConfigHandler\n" . "// date: %s\n%s\n", date('Y-m-d H:i:s'), implode("\n", $globalCode) . "\n" . implode("\n", $connectionCode));
     return $code;
 }
 public function execute($configFiles)
 {
     // Parse yaml config files
     $configs = $this->parseYamls($configFiles);
     // Default config: all.attributes
     $default_config = array();
     if (isset($configs['all']['attributes']) && is_array($configs['all']['attributes'])) {
         $default_config = $configs['all']['attributes'];
         unset($configs['all']['attributes']);
     }
     // Environment specific defaults: <env>.attributes
     $env = sfConfig::get('sf_environment');
     if (isset($configs[$env]['attributes']) && is_array($configs[$env]['attributes'])) {
         $default_config = sfToolKit::arrayDeepMerge($default_config, $configs[$env]['attributes']);
         unset($configs[$env]['attributes']);
     }
     // Connection specific configs
     $conn_configs = array();
     foreach ($configs as $env => $env_config) {
         foreach ($env_config as $conn => $conn_config) {
             $conn_configs[$conn] = sfToolkit::arrayDeepMerge($default_config, $conn_config);
         }
     }
     // Prepare default config data
     $data = array();
     foreach ($this->configToAttributes($default_config) as $key => $value) {
         $data[] = sprintf('$default_attributes["%s"] = %s;', $key, $this->attributeToPhp($value));
     }
     $data[] = '';
     // Prepare connection specific data
     foreach ($conn_configs as $conn_name => $conn_config) {
         foreach ($this->configToAttributes($conn_config) as $key => $value) {
             $data[] = sprintf('$attributes["%s"]["%s"] = %s;', $conn_name, $key, $this->attributeToPHP($value));
         }
         $data[] = '';
     }
     // compile data
     $retval = sprintf("<?php\n" . "// auto-generated by sfDoctrineConfigHandler\n" . "// date: %s\n%s\n", date('Y-m-d H:i:s'), implode("\n", $data));
     return $retval;
 }
Exemplo n.º 4
0
 /**
  * Returns the attributeHolders variables merged with some default ones. Since
  * sfPHPView normally has a $this context we fake it here.
  *
  * @return array
  */
 protected function getAttributeHolderVariables()
 {
     return sfToolKit::arrayDeepMerge($this->attributeHolder->getAll(), array('context' => $this->context));
 }