]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/config/ConfigManager.php
application: introduce the Shaarli\Config namespace
[github/shaarli/Shaarli.git] / application / config / ConfigManager.php
index ff41772a73153d7c3bb1d477e58d2586c5a5cf93..679a75b3bf2523eda94f9ba52b04edb84d48c717 100644 (file)
@@ -1,9 +1,5 @@
 <?php
-
-// FIXME! Namespaces...
-require_once 'ConfigIO.php';
-require_once 'ConfigJson.php';
-require_once 'ConfigPhp.php';
+namespace Shaarli\Config;
 
 /**
  * Class ConfigManager
@@ -20,6 +16,8 @@ class ConfigManager
      */
     protected static $NOT_FOUND = 'NOT_FOUND';
 
+    public static $DEFAULT_PLUGINS = array('qrcode');
+
     /**
      * @var string Config folder.
      */
@@ -37,6 +35,8 @@ class ConfigManager
 
     /**
      * Constructor.
+     *
+     * @param string $configFile Configuration file path without extension.
      */
     public function __construct($configFile = 'data/config')
     {
@@ -120,12 +120,12 @@ class ConfigManager
      * @param bool   $write      Write the new setting in the config file, default false.
      * @param bool   $isLoggedIn User login state, default false.
      *
-     * @throws Exception Invalid
+     * @throws \Exception Invalid
      */
     public function set($setting, $value, $write = false, $isLoggedIn = false)
     {
         if (empty($setting) || ! is_string($setting)) {
-            throw new Exception('Invalid setting key parameter. String expected, got: '. gettype($setting));
+            throw new \Exception('Invalid setting key parameter. String expected, got: '. gettype($setting));
         }
 
         // During the ConfigIO transition, map legacy settings to the new ones.
@@ -173,7 +173,7 @@ class ConfigManager
      *
      * @throws MissingFieldConfigException: a mandatory field has not been provided in $conf.
      * @throws UnauthorizedConfigException: user is not authorize to change configuration.
-     * @throws IOException: an error occurred while writing the new config file.
+     * @throws \IOException: an error occurred while writing the new config file.
      */
     public function write($isLoggedIn)
     {
@@ -295,6 +295,7 @@ class ConfigManager
         $this->setEmpty('resource.log', 'data/log.txt');
         $this->setEmpty('resource.update_check', 'data/lastupdatecheck.txt');
         $this->setEmpty('resource.raintpl_tpl', 'tpl/');
+        $this->setEmpty('resource.theme', 'default');
         $this->setEmpty('resource.raintpl_tmp', 'tmp/');
         $this->setEmpty('resource.thumbnails_cache', 'cache');
         $this->setEmpty('resource.page_cache', 'pagecache');
@@ -306,7 +307,7 @@ class ConfigManager
 
         $this->setEmpty('general.header_link', '?');
         $this->setEmpty('general.links_per_page', 20);
-        $this->setEmpty('general.enabled_plugins', array('qrcode'));
+        $this->setEmpty('general.enabled_plugins', self::$DEFAULT_PLUGINS);
 
         $this->setEmpty('updates.check_updates', false);
         $this->setEmpty('updates.check_updates_branch', 'stable');
@@ -361,7 +362,7 @@ class ConfigManager
 /**
  * Exception used if a mandatory field is missing in given configuration.
  */
-class MissingFieldConfigException extends Exception
+class MissingFieldConfigException extends \Exception
 {
     public $field;
 
@@ -380,7 +381,7 @@ class MissingFieldConfigException extends Exception
 /**
  * Exception used if an unauthorized attempt to edit configuration has been made.
  */
-class UnauthorizedConfigException extends Exception
+class UnauthorizedConfigException extends \Exception
 {
     /**
      * Construct exception.