diff options
author | Silvio <silvio@devlet.com.br> | 2010-08-19 17:10:20 -0300 |
---|---|---|
committer | Silvio <silvio@devlet.com.br> | 2010-08-19 17:10:20 -0300 |
commit | 5c4d0bf21d6ddf98d3907bff5644263d0eba39bc (patch) | |
tree | dc0e72d5248cd66239bda39c86abb78da07642b2 /classes | |
parent | 2a5cff9990f6e30fa58c4855e41656ea06ff3261 (diff) | |
download | cinisis-5c4d0bf21d6ddf98d3907bff5644263d0eba39bc.tar.gz cinisis-5c4d0bf21d6ddf98d3907bff5644263d0eba39bc.tar.bz2 |
Supporting multiple YAML libraries
Diffstat (limited to 'classes')
-rw-r--r-- | classes/Cinisis.php | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/classes/Cinisis.php b/classes/Cinisis.php index 8771b21..915d62f 100644 --- a/classes/Cinisis.php +++ b/classes/Cinisis.php @@ -70,7 +70,30 @@ class Cinisis { } // Load configuration. - return Spyc::YAMLLoad($file); + return $this->yaml($file); + } + + /** + * Load YAML into array using backend libraries. + * + * @param $file + * Config file. + * + * @return + * Array with configuration or FALSE if error. + */ + static function yaml($file) { + if (file_exists('../contrib/spyc/spyc.php')) { + // Use Spyc. + include_once '../contrib/spyc/spyc.php'; + return Spyc::YAMLLoad($file); + } + elseif (is_callable(array('sfYaml', 'load'))) { + // Use symfony built-in yaml loader. + return sfYaml::load($file); + } + + throw new Exception('No suitable methods for parsing YAML found.'); } /** |