*/
namespace Friendica\Core;
+use Friendica\App;
use Friendica\BaseObject;
-use Friendica\Core\Config;
-
-require_once 'include/dba.php';
/**
* @brief Arbitrary system configuration storage
class Config extends BaseObject
{
/**
- * @var Friendica\Core\Config\IConfigAdapter
+ * @var \Friendica\Core\Config\IConfigAdapter
*/
private static $adapter = null;
public static function init()
{
- $a = self::getApp();
+ // Database isn't ready or populated yet
+ if (!self::getApp()->getMode()->has(App\Mode::DBCONFIGAVAILABLE)) {
+ return;
+ }
- if (isset($a->config['system']['config_adapter']) && $a->config['system']['config_adapter'] == 'preload') {
+ if (self::getApp()->getConfigValue('system', 'config_adapter') == 'preload') {
self::$adapter = new Config\PreloadConfigAdapter();
} else {
self::$adapter = new Config\JITConfigAdapter();
* @param string $family The category of the configuration value
*
* @return void
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function load($family = "config")
{
+ // Database isn't ready or populated yet
+ if (!self::getApp()->getMode()->has(App\Mode::DBCONFIGAVAILABLE)) {
+ return;
+ }
+
if (empty(self::$adapter)) {
self::init();
}
* @param boolean $refresh optional, If true the config is loaded from the db and not from the cache (default: false)
*
* @return mixed Stored value or null if it does not exist
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function get($family, $key, $default_value = null, $refresh = false)
{
+ // Database isn't ready or populated yet, fallback to file config
+ if (!self::getApp()->getMode()->has(App\Mode::DBCONFIGAVAILABLE)) {
+ return self::getApp()->getConfigValue($family, $key, $default_value);
+ }
+
if (empty(self::$adapter)) {
self::init();
}
* @param string $key The configuration key to set
* @param mixed $value The value to store
*
- * @return mixed Stored $value or false if the database update failed
+ * @return bool Operation success
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function set($family, $key, $value)
{
+ // Database isn't ready or populated yet
+ if (!self::getApp()->getMode()->has(App\Mode::DBCONFIGAVAILABLE)) {
+ return false;
+ }
+
if (empty(self::$adapter)) {
self::init();
}
* @param string $key The configuration key to delete
*
* @return mixed
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function delete($family, $key)
{
+ // Database isn't ready or populated yet
+ if (!self::getApp()->getMode()->has(App\Mode::DBCONFIGAVAILABLE)) {
+ return false;
+ }
+
if (empty(self::$adapter)) {
self::init();
}