From 012016d3311a13c3c1e9d60778dc6fbd6be0204e Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 6 Feb 2015 10:02:21 +0100 Subject: [PATCH] Deprecated \OCP\IAppConfig - add missing methods to IConfig --- lib/private/allconfig.php | 89 ++++++++++++++++++++++++++++++-- lib/private/legacy/appconfig.php | 2 +- lib/public/iappconfig.php | 7 +++ lib/public/iconfig.php | 37 +++++++++++++ 4 files changed, 129 insertions(+), 6 deletions(-) diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php index 8d4f13e5b9..7057cc2f42 100644 --- a/lib/private/allconfig.php +++ b/lib/private/allconfig.php @@ -8,6 +8,8 @@ */ namespace OC; + +use OCP\IAppConfig; use OCP\IDBConnection; use OCP\PreConditionNotMetException; @@ -21,6 +23,9 @@ class AllConfig implements \OCP\IConfig { /** @var IDBConnection */ private $connection; + /** @var IAppConfig */ + private $appConfig; + /** * 3 dimensional array with the following structure: * [ $userId => @@ -62,11 +67,17 @@ class AllConfig implements \OCP\IConfig { * * otherwise a SQLite database is created in the wrong directory * because the database connection was created with an uninitialized config + * + * The same applies for the app config, because it uses the database + * connection itself */ private function fixDIInit() { if($this->connection === null) { $this->connection = \OC::$server->getDatabaseConnection(); } + if ($this->appConfig === null) { + $this->appConfig = \OC::$server->getAppConfig(); + } } /** @@ -116,7 +127,10 @@ class AllConfig implements \OCP\IConfig { * @return string[] the keys stored for the app */ public function getAppKeys($appName) { - return \OC::$server->getAppConfig()->getKeys($appName); + // TODO - FIXME + $this->fixDIInit(); + + return $this->appConfig->getKeys($appName); } /** @@ -127,7 +141,24 @@ class AllConfig implements \OCP\IConfig { * @param string $value the value that should be stored */ public function setAppValue($appName, $key, $value) { - \OC::$server->getAppConfig()->setValue($appName, $key, $value); + // TODO - FIXME + $this->fixDIInit(); + + $this->appConfig->setValue($appName, $key, $value); + } + + /** + * Checks if a key is set in the apps config + * + * @param string $appName the appName tto look a key up + * @param string $key the key to look up + * @return bool + */ + public function hasAppKey($appName, $key) { + // TODO - FIXME + $this->fixDIInit(); + + $this->appConfig->hasKey($appName, $key); } /** @@ -139,7 +170,49 @@ class AllConfig implements \OCP\IConfig { * @return string the saved value */ public function getAppValue($appName, $key, $default = '') { - return \OC::$server->getAppConfig()->getValue($appName, $key, $default); + // TODO - FIXME + $this->fixDIInit(); + + return $this->appConfig->getValue($appName, $key, $default); + } + + /** + * Get all app values that are stored + * + * @param string $appName the appName + * @return array with key - value pair as they are saved previously + */ + public function getAppValuesByApp($appName) { + // TODO - FIXME + $this->fixDIInit(); + + return $this->appConfig->getValues($appName, false); + } + + /** + * Get all app values that use the same key + * + * @param string $key the appName + * @return array with key - value pair as they are saved previously with the + * app name as key + */ + public function getAppValuesByKey($key) { + // TODO - FIXME + $this->fixDIInit(); + + return $this->appConfig->getValues(false, $key); + } + + /** + * Get all apps that have at least one value saved + * + * @return array containing app names + */ + public function getApps() { + // TODO - FIXME + $this->fixDIInit(); + + return $this->appConfig->getApps(); } /** @@ -149,7 +222,10 @@ class AllConfig implements \OCP\IConfig { * @param string $key the key of the value, under which it was saved */ public function deleteAppValue($appName, $key) { - \OC::$server->getAppConfig()->deleteKey($appName, $key); + // TODO - FIXME + $this->fixDIInit(); + + $this->appConfig->deleteKey($appName, $key); } /** @@ -158,7 +234,10 @@ class AllConfig implements \OCP\IConfig { * @param string $appName the appName the configs are stored under */ public function deleteAppValues($appName) { - \OC::$server->getAppConfig()->deleteApp($appName); + // TODO - FIXME + $this->fixDIInit(); + + $this->appConfig->deleteApp($appName); } diff --git a/lib/private/legacy/appconfig.php b/lib/private/legacy/appconfig.php index 68f63974e8..9c87dce8c9 100644 --- a/lib/private/legacy/appconfig.php +++ b/lib/private/legacy/appconfig.php @@ -25,7 +25,7 @@ * This class provides an easy way for apps to store config values in the * database. * - * @deprecated use \OC::$server->getAppConfig() to get an \OCP\IAppConfig instance + * @deprecated use \OC::$server->getConfig() to get an \OCP\IConfig instance */ class OC_Appconfig { /** diff --git a/lib/public/iappconfig.php b/lib/public/iappconfig.php index 3a976b4a26..27b9cb4248 100644 --- a/lib/public/iappconfig.php +++ b/lib/public/iappconfig.php @@ -10,6 +10,10 @@ namespace OCP; /** * This class provides an easy way for apps to store config values in the * database. + * + * @deprecated This interface will be dropped with ownCloud 10.1 which will be + * released in the first quarter of 2017. Use the methods of + * \OCP\IConfig instead */ interface IAppConfig { /** @@ -17,6 +21,7 @@ interface IAppConfig { * @param string $app * @param string $key * @return bool + * @deprecated use method hasAppKey of \OCP\IConfig */ public function hasKey($app, $key); @@ -59,6 +64,7 @@ interface IAppConfig { * @param string|false $key * @param string|false $app * @return array|false + * @deprecated use method getAppValuesByApp or getAppValuesByKey of \OCP\IConfig */ public function getValues($app, $key); @@ -77,6 +83,7 @@ interface IAppConfig { /** * Get all apps using the config * @return array an array of app ids + * @deprecated use method getApps of \OCP\IConfig * * This function returns a list of all apps that have at least one * entry in the appconfig table. diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php index 868a4133d2..ec2b0b4cbb 100644 --- a/lib/public/iconfig.php +++ b/lib/public/iconfig.php @@ -84,6 +84,16 @@ interface IConfig { */ public function setAppValue($appName, $key, $value); + /** + * Checks if a key is set in the apps config + * + * @param string $appName the appName tto look a key up + * @param string $key the key to look up + * @return bool + * @since 8.1.0 + */ + public function hasAppKey($appName, $key); + /** * Looks up an app wide defined value * @@ -94,6 +104,33 @@ interface IConfig { */ public function getAppValue($appName, $key, $default = ''); + /** + * Get all app values that are stored + * + * @param string $appName the appName + * @return array with key - value pair as they are saved previously + * @since 8.1.0 + */ + public function getAppValuesByApp($appName); + + /** + * Get all app values that use the same key + * + * @param string $key the appName + * @return array with key - value pair as they are saved previously with the + * app name as key + * @since 8.1.0 + */ + public function getAppValuesByKey($key); + + /** + * Get all apps that have at least one value saved + * + * @return array containing app names + * @since 8.1.0 + */ + public function getApps(); + /** * Delete an app wide defined value *