示例#1
0
 public function generateInternalConfig()
 {
     if (isset(CM_Config::get()->CM_Class_Abstract->typesMaxValue)) {
         return;
     }
     $generator = new CM_Config_Generator();
     $config = new CM_Config_Node();
     $config->extendWithConfig($generator->getConfigClassTypes());
     $config->extendWithConfig($generator->getConfigActionVerbs());
     $config->extendWithConfig(CM_Config::get());
     CM_Config::set($config->export());
 }
示例#2
0
文件: Cli.php 项目: cargomedia/cm
 /**
  * @param string    $filename
  * @param string    $configJson
  * @param bool|null $merge
  */
 public function setConfig($filename, $configJson, $merge = null)
 {
     $merge = (bool) $merge;
     $configJson = (object) CM_Util::jsonDecode($configJson);
     $configFile = new CM_File(DIR_ROOT . 'resources/config/' . $filename . '.php');
     $config = new CM_Config_Node();
     if ($merge && $configFile->exists()) {
         $config->extendWithFile($configFile);
     }
     $config->extendWithConfig($configJson);
     $configStr = $config->exportAsString('$config');
     $indentation = '    ';
     $indent = function ($content) use($indentation) {
         return preg_replace('/(:?^|[\\n])/', '$1' . $indentation, $content);
     };
     $configFile->ensureParentDirectory();
     $configFile->write(join(PHP_EOL, ['<?php', '// This is autogenerated config file. You should not change it manually.', '', 'return function (CM_Config_Node $config) {', $indent($configStr), '};', '']));
     $this->_getStreamOutput()->writeln('Created `' . $configFile->getPath() . '`');
 }