/** * Возвращает список конфигурационных файлов в виде: * [alias => source, ...]. * @param IConfigSource $config конфигурация * @return array */ protected function getLocalConfigArrays(IConfigSource $config) { $src = $config->getSource(); $result = [$config->getAlias() => $this->convertToArray($src)]; array_walk_recursive($src, function ($value) use(&$result) { if ($value instanceof IConfigSource) { $result[$value->getAlias()] = $this->convertToArray($value->getSource()); } }); return $result; }
/** * {@inheritdoc} */ public function save(IConfigSource $config) { $file = $this->getAliasFile($config->getAlias()); $configContent = addcslashes(serialize($config), '\''); $content = <<<FILE <?php return unserialize('{$configContent}'); FILE; file_put_contents($file, $content); $this->saveSeparateConfig($config); }