]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
application: introduce the Shaarli\Config namespace 788/head
authorVirtualTam <virtualtam@flibidi.net>
Fri, 3 Mar 2017 22:06:12 +0000 (23:06 +0100)
committerVirtualTam <virtualtam@flibidi.net>
Sat, 4 Mar 2017 16:07:52 +0000 (17:07 +0100)
Namespaces have been introduced with the REST API, and should be generalized
to the whole codebase to manage object scope and benefit from autoloading.

See:
- https://secure.php.net/manual/en/language.namespaces.php
- http://www.php-fig.org/psr/psr-4/

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
26 files changed:
application/Updater.php
application/api/ApiMiddleware.php
application/config/ConfigIO.php
application/config/ConfigJson.php
application/config/ConfigManager.php
application/config/ConfigPhp.php
application/config/ConfigPlugin.php
composer.json
index.php
tests/ApplicationUtilsTest.php
tests/PluginManagerTest.php
tests/Updater/UpdaterTest.php
tests/api/ApiMiddlewareTest.php
tests/api/controllers/GetLinkIdTest.php
tests/api/controllers/GetLinksTest.php
tests/api/controllers/InfoTest.php
tests/config/ConfigJsonTest.php
tests/config/ConfigManagerTest.php
tests/config/ConfigPhpTest.php
tests/config/ConfigPluginTest.php
tests/plugins/PluginIssoTest.php
tests/plugins/PluginMarkdownTest.php
tests/plugins/PluginPubsubhubbubTest.php
tests/plugins/PluginQrcodeTest.php
tests/plugins/PluginReadityourselfTest.php
tests/plugins/PluginWallabagTest.php

index f5ebf31af9bf29211354a6111abd0380c0407953..27cb2f0a43e29b2e4879d91cac672b4a16e3159f 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+use Shaarli\Config\ConfigJson;
+use Shaarli\Config\ConfigPhp;
 
 /**
  * Class Updater.
index 522091cac39328222d790b441f29195e2d64fe78..4120f7a9530d09ab252df836eeddb7aceea76b8b 100644 (file)
@@ -1,9 +1,9 @@
 <?php
-
 namespace Shaarli\Api;
 
 use Shaarli\Api\Exceptions\ApiException;
 use Shaarli\Api\Exceptions\ApiAuthorizationException;
+
 use Slim\Container;
 use Slim\Http\Request;
 use Slim\Http\Response;
index be78b1c71cf52a798198cdfa44c9f5220b9bc9f8..3efe5b6fb941b2dafb7107cea11cb59f1bcb59e6 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace Shaarli\Config;
 
 /**
  * Interface ConfigIO
index 6b5d73f159440cc1276ff984d48ef0473c668859..30908d90db436574f9585d20d6b437f29d56e363 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace Shaarli\Config;
 
 /**
  * Class ConfigJson (ConfigIO implementation)
@@ -21,7 +22,7 @@ class ConfigJson implements ConfigIO
         $data = json_decode($data, true);
         if ($data === null) {
             $error = json_last_error();
-            throw new Exception('An error occurred while parsing JSON file: error code #'. $error);
+            throw new \Exception('An error occurred while parsing JSON file: error code #'. $error);
         }
         return $data;
     }
@@ -35,7 +36,7 @@ class ConfigJson implements ConfigIO
         $print = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0;
         $data = self::getPhpHeaders() . json_encode($conf, $print) . self::getPhpSuffix();
         if (!file_put_contents($filepath, $data)) {
-            throw new IOException(
+            throw new \IOException(
                 $filepath,
                 'Shaarli could not create the config file.
                 Please make sure Shaarli has the right to write in the folder is it installed in.'
index a401887c5367389e34785a8dd7d7c5c906238f41..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
@@ -124,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.
@@ -177,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)
     {
@@ -366,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;
 
@@ -385,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.
index d7fd4baffa34d2fa3cec5bcb83f108c3571af97a..2633824d3197f209d3048f74949d95b96d128148 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace Shaarli\Config;
 
 /**
  * Class ConfigPhp (ConfigIO implementation)
@@ -115,7 +116,7 @@ class ConfigPhp implements ConfigIO
         if (!file_put_contents($filepath, $configStr)
             || strcmp(file_get_contents($filepath), $configStr) != 0
         ) {
-            throw new IOException(
+            throw new \IOException(
                 $filepath,
                 'Shaarli could not create the config file.
                 Please make sure Shaarli has the right to write in the folder is it installed in.'
index cb0b6fce439cd3b6a3367b968e96210df4e15c09..61a594d3c0e6f75b1bacd21689e6a0d335cbef6f 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+namespace Shaarli\Config;
+
 /**
  * Plugin configuration helper functions.
  *
@@ -112,7 +114,7 @@ function load_plugin_parameter_values($plugins, $conf)
 /**
  * Exception used if an error occur while saving plugin configuration.
  */
-class PluginConfigOrderException extends Exception
+class PluginConfigOrderException extends \Exception
 {
     /**
      * Construct exception.
index 2fed0df7700bc5211d9e515d9d0b60f9c2c19e3b..b82aceefe43402f64e38120a934e5a456d3469d1 100644 (file)
@@ -27,7 +27,8 @@
             "Shaarli\\": "application",
             "Shaarli\\Api\\": "application/api/",
             "Shaarli\\Api\\Controllers\\": "application/api/controllers",
-            "Shaarli\\Api\\Exceptions\\": "application/api/exceptions"
+            "Shaarli\\Api\\Exceptions\\": "application/api/exceptions",
+            "Shaarli\\Config\\": "application/config/"
         }
     }
 }
index 8eb36d81a766831ca9e189a53f83267feee72eb3..77857d27d942affb0d2849b82ecce86573a5b936 100644 (file)
--- a/index.php
+++ b/index.php
@@ -62,8 +62,6 @@ require_once __DIR__ . '/vendor/autoload.php';
 require_once 'application/ApplicationUtils.php';
 require_once 'application/Cache.php';
 require_once 'application/CachedPage.php';
-require_once 'application/config/ConfigManager.php';
-require_once 'application/config/ConfigPlugin.php';
 require_once 'application/FeedBuilder.php';
 require_once 'application/FileUtils.php';
 require_once 'application/HttpUtils.php';
@@ -80,6 +78,7 @@ require_once 'application/PluginManager.php';
 require_once 'application/Router.php';
 require_once 'application/Updater.php';
 use \Shaarli\ThemeUtils;
+use \Shaarli\Config\ConfigManager;
 
 // Ensure the PHP version is supported
 try {
index 634bd0eda01a76848ef80058aadcfc4db71e6d1c..ad86e21c78d8efe965ea02e940aaff8a7181b9db 100644 (file)
@@ -1,9 +1,10 @@
 <?php
+use Shaarli\Config\ConfigManager;
+
 /**
  * ApplicationUtils' tests
  */
 
-require_once 'application/config/ConfigManager.php';
 require_once 'application/ApplicationUtils.php';
 
 /**
index ddf4818533a1777f422421feb29b44e7243a7afa..01de959c5266bb9e877f7e425e5a5af9e2cc673d 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 /**
  * Plugin Manager tests
index 39be88f944c1d10c39fce0273c8f1427a4cbb4a5..448405a3fd5b4d34cb369575bc3b265eaade4f17 100644 (file)
@@ -1,6 +1,8 @@
 <?php
+use Shaarli\Config\ConfigJson;
+use Shaarli\Config\ConfigManager;
+use Shaarli\Config\ConfigPhp;
 
-require_once 'application/config/ConfigManager.php';
 require_once 'tests/Updater/DummyUpdater.php';
 require_once 'inc/rain.tpl.class.php';
 
index d9753b1d6bdafc6b92aa8771e3e748ae7e605d66..23a56b1cee4e78e90aec15941fb4b3927242b32e 100644 (file)
@@ -1,7 +1,8 @@
 <?php
-
 namespace Shaarli\Api;
 
+use Shaarli\Config\ConfigManager;
+
 use Slim\Container;
 use Slim\Http\Environment;
 use Slim\Http\Request;
@@ -44,7 +45,7 @@ class ApiMiddlewareTest extends \PHPUnit_Framework_TestCase
      */
     public function setUp()
     {
-        $this->conf = new \ConfigManager('tests/utils/config/configJson.json.php');
+        $this->conf = new ConfigManager('tests/utils/config/configJson.json.php');
         $this->conf->set('api.secret', 'NapoleonWasALizard');
 
         $this->refDB = new \ReferenceLinkDB();
index 1b0205053e1abbad094f2a2b4b913db86e460264..45b18e6a74db4f7695133ce435fd525631ed3b0e 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace Shaarli\Api\Controllers;
 
+use Shaarli\Config\ConfigManager;
 
 use Slim\Container;
 use Slim\Http\Environment;
@@ -25,7 +26,7 @@ class GetLinkIdTest extends \PHPUnit_Framework_TestCase
     protected static $testDatastore = 'sandbox/datastore.php';
 
     /**
-     * @var \ConfigManager instance
+     * @var ConfigManager instance
      */
     protected $conf;
 
@@ -54,7 +55,7 @@ class GetLinkIdTest extends \PHPUnit_Framework_TestCase
      */
     public function setUp()
     {
-        $this->conf = new \ConfigManager('tests/utils/config/configJson');
+        $this->conf = new ConfigManager('tests/utils/config/configJson');
         $this->refDB = new \ReferenceLinkDB();
         $this->refDB->write(self::$testDatastore);
 
index da54fcf12ba31c98babdd50e6ebbc9aa5260ca0d..10330cd9a8d845a77f7d623ad92bd6be4f911949 100644 (file)
@@ -1,7 +1,7 @@
 <?php
-
 namespace Shaarli\Api\Controllers;
 
+use Shaarli\Config\ConfigManager;
 
 use Slim\Container;
 use Slim\Http\Environment;
@@ -25,7 +25,7 @@ class GetLinksTest extends \PHPUnit_Framework_TestCase
     protected static $testDatastore = 'sandbox/datastore.php';
 
     /**
-     * @var \ConfigManager instance
+     * @var ConfigManager instance
      */
     protected $conf;
 
@@ -54,7 +54,7 @@ class GetLinksTest extends \PHPUnit_Framework_TestCase
      */
     public function setUp()
     {
-        $this->conf = new \ConfigManager('tests/utils/config/configJson');
+        $this->conf = new ConfigManager('tests/utils/config/configJson');
         $this->refDB = new \ReferenceLinkDB();
         $this->refDB->write(self::$testDatastore);
 
index 2916eed8cbfdf286687aaa92c3c2283de1f45843..4beef3f7f7120a11173b81df275d8583959d4430 100644 (file)
@@ -1,7 +1,8 @@
 <?php
-
 namespace Shaarli\Api\Controllers;
 
+use Shaarli\Config\ConfigManager;
+
 use Slim\Container;
 use Slim\Http\Environment;
 use Slim\Http\Request;
@@ -22,7 +23,7 @@ class InfoTest extends \PHPUnit_Framework_TestCase
     protected static $testDatastore = 'sandbox/datastore.php';
 
     /**
-     * @var \ConfigManager instance
+     * @var ConfigManager instance
      */
     protected $conf;
 
@@ -46,7 +47,7 @@ class InfoTest extends \PHPUnit_Framework_TestCase
      */
     public function setUp()
     {
-        $this->conf = new \ConfigManager('tests/utils/config/configJson.json.php');
+        $this->conf = new ConfigManager('tests/utils/config/configJson.json.php');
         $this->refDB = new \ReferenceLinkDB();
         $this->refDB->write(self::$testDatastore);
 
@@ -84,7 +85,7 @@ class InfoTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('Shaarli', $data['settings']['title']);
         $this->assertEquals('?', $data['settings']['header_link']);
         $this->assertEquals('UTC', $data['settings']['timezone']);
-        $this->assertEquals(\ConfigManager::$DEFAULT_PLUGINS, $data['settings']['enabled_plugins']);
+        $this->assertEquals(ConfigManager::$DEFAULT_PLUGINS, $data['settings']['enabled_plugins']);
         $this->assertEquals(false, $data['settings']['default_private_links']);
 
         $title = 'My links';
index 07f6ab49db64953499ab5eb5125eeaf197837ffe..3527f83d67af1bae0816f61ea8bd164d1cfb4b99 100644 (file)
@@ -1,11 +1,10 @@
 <?php
-
-require_once 'application/config/ConfigJson.php';
+namespace Shaarli\Config;
 
 /**
  * Class ConfigJsonTest
  */
-class ConfigJsonTest extends PHPUnit_Framework_TestCase
+class ConfigJsonTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * @var ConfigJson
@@ -40,7 +39,7 @@ class ConfigJsonTest extends PHPUnit_Framework_TestCase
     /**
      * Read a non existent config file -> empty array.
      *
-     * @expectedException Exception
+     * @expectedException \Exception
      * @expectedExceptionMessage An error occurred while parsing JSON file: error code #4
      */
     public function testReadInvalidJson()
@@ -112,7 +111,7 @@ class ConfigJsonTest extends PHPUnit_Framework_TestCase
     /**
      * Write to invalid path.
      *
-     * @expectedException IOException
+     * @expectedException \IOException
      */
     public function testWriteInvalidArray()
     {
@@ -123,7 +122,7 @@ class ConfigJsonTest extends PHPUnit_Framework_TestCase
     /**
      * Write to invalid path.
      *
-     * @expectedException IOException
+     * @expectedException \IOException
      */
     public function testWriteInvalidBlank()
     {
index 436e3d673850245ecd16c027716df25e94edc5ca..b81be5b66064c845ea6aafba3defb79210bb8c24 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+namespace Shaarli\Config;
 
 /**
  * Unit tests for Class ConfigManagerTest
@@ -6,7 +7,7 @@
  * Note: it only test the manager with ConfigJson,
  *  ConfigPhp is only a workaround to handle the transition to JSON type.
  */
-class ConfigManagerTest extends PHPUnit_Framework_TestCase
+class ConfigManagerTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * @var ConfigManager
@@ -83,7 +84,7 @@ class ConfigManagerTest extends PHPUnit_Framework_TestCase
     /**
      * Set with an empty key.
      *
-     * @expectedException Exception
+     * @expectedException \Exception
      * @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
      */
     public function testSetEmptyKey()
@@ -94,7 +95,7 @@ class ConfigManagerTest extends PHPUnit_Framework_TestCase
     /**
      * Set with an array key.
      *
-     * @expectedException Exception
+     * @expectedException \Exception
      * @expectedExceptionMessageRegExp #^Invalid setting key parameter. String expected, got.*#
      */
     public function testSetArrayKey()
@@ -105,7 +106,7 @@ class ConfigManagerTest extends PHPUnit_Framework_TestCase
     /**
      * Try to write the config without mandatory parameter (e.g. 'login').
      *
-     * @expectedException MissingFieldConfigException
+     * @expectedException Shaarli\Config\MissingFieldConfigException
      */
     public function testWriteMissingParameter()
     {
index 58cd8d2a27cbcc5d691b4af9d02ef2eddc7dd18b..abfbb30538f7f27b06468a3be6887a0ebe1f3de1 100644 (file)
@@ -1,11 +1,10 @@
 <?php
-
-require_once 'application/config/ConfigPhp.php';
+namespace Shaarli\Config;
 
 /**
  * Class ConfigPhpTest
  */
-class ConfigPhpTest extends PHPUnit_Framework_TestCase
+class ConfigPhpTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * @var ConfigPhp
index 3b37cd7962cee974814872218277307258782420..22ab927b084e8d9b26d1a0fe64c48178fcd39fa7 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+namespace Shaarli\Config;
+
 /**
  * Config' tests
  */
@@ -8,7 +10,7 @@ require_once 'application/config/ConfigPlugin.php';
 /**
  * Unitary tests for Shaarli config related functions
  */
-class ConfigPluginTest extends PHPUnit_Framework_TestCase
+class ConfigPluginTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * Test save_plugin_config with valid data.
@@ -39,7 +41,7 @@ class ConfigPluginTest extends PHPUnit_Framework_TestCase
     /**
      * Test save_plugin_config with invalid data.
      *
-     * @expectedException              PluginConfigOrderException
+     * @expectedException Shaarli\Config\PluginConfigOrderException
      */
     public function testSavePluginConfigInvalid()
     {
index 03def208eea6c647356d2ca5db2c13906a1ff97d..0ae73183808666ec74bf7ef7ea64e50f63b73c94 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 require_once 'plugins/isso/isso.php';
 
index d4cd1b97376657aeeb4952de7be0236d8848b555..d8180ad6dbed507de5c2c327ae1c29047d740caf 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 /**
  * PluginMarkdownTest.php
index 1bd8793568c358127db6f5ff9b6a4313ba35e341..69d00936f13db7a9f8d38e20753a8973dbad77c6 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 require_once 'plugins/pubsubhubbub/pubsubhubbub.php';
 require_once 'application/Router.php';
index 211ee89c4a0755bb7ed66f360c474e3b120d14ad..ebfadddf39b0bd6241b13273d8734d633c74cebe 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * PluginQrcodeTest.php
  */
index 30470ab72fba4ee9dd6b48089a21fc642398ff3a..bbba967629aca7b77f494f2eebc929ccc0414f45 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 /**
  * PluginReadityourselfTest.php.php
index 30351f4651dba8972c9533a66f2579ee87c0ce1c..76b7887e53e1443272527518d50a72f5eb4b420e 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 /**
  * PluginWallabagTest.php.php