From 5c4d0bf21d6ddf98d3907bff5644263d0eba39bc Mon Sep 17 00:00:00 2001 From: Silvio Date: Thu, 19 Aug 2010 17:10:20 -0300 Subject: Supporting multiple YAML libraries --- classes/Cinisis.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'classes') 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.'); } /** -- cgit v1.2.3