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