aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Cinisis.php25
-rw-r--r--index.php3
2 files changed, 24 insertions, 4 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.');
}
/**
diff --git a/index.php b/index.php
index 612602d..392fa28 100644
--- a/index.php
+++ b/index.php
@@ -3,9 +3,6 @@
* Cinisis - Isis db reading tool.
*/
-// Import Spyc.
-require_once 'contrib/spyc/spyc.php';
-
// Autoloader.
function cinisis_autoload($class) {
if (strstr($class, 'Db')) {