Example #1
0
 public function loadFile($source, $parameters = array())
 {
     if (!is_readable($source)) {
         throw new \Exception('Configuration source "' . $source . '" is not readable!');
     }
     $cacheDest = 'config/' . md5($source) . '/' . md5(json_encode($parameters));
     if (Cache::needFresh($source, $cacheDest) || DEBUG) {
         $content = file_get_contents($source);
         foreach ($parameters as $k => $v) {
             $parameters['&' . $k] = $v;
             $content = str_replace('%' . $k . '%', '*' . $k, $content);
             unset($parameters[$k]);
         }
         $aliasYaml = Yaml::dump(array('__aliases' => $parameters), 3);
         foreach ($parameters as $k => $v) {
             $aliasYaml = str_replace('\'' . $k . '\':', '- ' . $k, $aliasYaml);
         }
         //die($aliasYaml.PHP_EOL.$content);
         $result = Yaml::parse($aliasYaml . PHP_EOL . $content);
         unset($result['__aliases']);
         Cache::set($cacheDest, $result);
     } else {
         $result = Cache::get($cacheDest);
     }
     foreach ($result as $k => $v) {
         $this->addNode($k, $v);
     }
     return $this;
 }
Example #2
0
 protected function compileFile($source)
 {
     $this->currentSource = $this->resolveFilePath($source);
     $sourceContent = file_get_contents($this->currentSource);
     $bufferExtension = explode('.', $source);
     $extension = $bufferExtension[count($bufferExtension) - 1];
     $sourceContentPreCompiled = $this->preCompile($sourceContent);
     $tmpFileKey = str_replace(array(ROOT, '.' . $extension, '/'), array('', '.php', '_'), $source);
     $sourceContentPostCompiled = $this->postCompile($sourceContentPreCompiled);
     Cache::writeTempFile($extension . '/' . $tmpFileKey, $sourceContentPostCompiled);
     $tmpFilePath = TMP_PATH . $extension . '/' . $tmpFileKey;
     ob_start();
     include $tmpFilePath;
     return ob_get_clean();
 }