Add Config container class to server container

This commit is contained in:
Bart Visscher 2013-09-20 20:21:24 +02:00
parent e3013c5801
commit e92abfd4d8
4 changed files with 151 additions and 0 deletions

78
lib/allconfig.php Normal file
View File

@ -0,0 +1,78 @@
<?php
/**
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*
*/
namespace OC;
/**
* Class to combine all the configuration options ownCloud offers
*/
class AllConfig implements \OCP\IConfig {
/**
* Sets a new systemwide value
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
* @todo need a use case for this
*/
// public function setSystemValue($key, $value) {
// \OCP\Config::setSystemValue($key, $value);
// }
/**
* Looks up a systemwide defined value
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
public function getSystemValue($key) {
return \OCP\Config::getSystemValue($key, '');
}
/**
* Writes a new appwide value
* @param string $appName the appName that we want to store the value under
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
*/
public function setAppValue($appName, $key, $value) {
\OCP\Config::setAppValue($appName, $key, $value);
}
/**
* Looks up an appwide defined value
* @param string $appName the appName that we stored the value under
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
public function getAppValue($appName, $key) {
return \OCP\Config::getAppValue($appName, $key, '');
}
/**
* Set a user defined value
* @param string $userId the userId of the user that we want to store the value under
* @param string $appName the appName that we want to store the value under
* @param string $key the key under which the value is being stored
* @param string $value the value that you want to store
*/
public function setUserValue($userId, $appName, $key, $value) {
\OCP\Config::setUserValue($userId, $appName, $key, $value);
}
/**
* Shortcut for getting a user defined value
* @param string $userId the userId of the user that we want to store the value under
* @param string $appName the appName that we stored the value under
* @param string $key the key under which the value is being stored
*/
public function getUserValue($userId, $appName, $key){
return \OCP\Config::getUserValue($userId, $appName, $key);
}
}

59
lib/public/iconfig.php Normal file
View File

@ -0,0 +1,59 @@
<?php
/** * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*
*/
namespace OCP;
/**
* Access to all the configuration options ownCloud offers
*/
interface IConfig {
/**
* Sets a new systemwide value
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
* @todo need a use case for this
*/
// public function setSystemValue($key, $value);
/**
* Looks up a systemwide defined value
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
public function getSystemValue($key);
/**
* Writes a new appwide value
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
*/
public function setAppValue($key, $value, $appName=null);
/**
* Looks up an appwide defined value
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
public function getAppValue($key, $appName=null);
/**
* Shortcut for setting a user defined value
* @param string $key the key under which the value is being stored
* @param string $value the value that you want to store
* @param string $userId the userId of the user that we want to store the value under, defaults to the current one
*/
public function setUserValue($key, $value, $userId=null);
/**
* Shortcut for getting a user defined value
* @param string $key the key under which the value is being stored
* @param string $userId the userId of the user that we want to store the value under, defaults to the current one
*/
public function getUserValue($key, $userId=null);
}

View File

@ -74,6 +74,11 @@ interface IServerContainer {
*/
function getNavigationManager();
/**
* @return \OCP\IConfig
*/
function getConfig();
/**
* Returns an ICache instance
*

View File

@ -100,6 +100,9 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('NavigationManager', function($c) {
return new \OC\NavigationManager();
});
$this->registerService('AllConfig', function($c) {
return new \OC\AllConfig();
});
$this->registerService('UserCache', function($c) {
return new UserCache();
});
@ -162,6 +165,12 @@ class Server extends SimpleContainer implements IServerContainer {
return $this->query('NavigationManager');
}
/**
* @return \OC\Config
*/
function getConfig() {
return $this->query('AllConfig');
}
/**
* Returns an ICache instance
*