mirror of
https://git.sekbaer.de/Friendica/friendica.git
synced 2025-06-12 01:54:26 +02:00
Merge pull request #8142 from nupplaphil/task/di_config
CleanUp Config namespace
This commit is contained in:
commit
04d620fc2f
207 changed files with 1276 additions and 1439 deletions
|
@ -349,7 +349,7 @@ class ACL
|
|||
$mail_enabled = false;
|
||||
$pubmail_enabled = false;
|
||||
|
||||
if (function_exists('imap_open') && !Config::get('system', 'imap_disabled')) {
|
||||
if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) {
|
||||
$mailacct = DBA::selectFirst('mailacct', ['pubmail'], ['`uid` = ? AND `server` != ""', $user['uid']]);
|
||||
if (DBA::isResult($mailacct)) {
|
||||
$mail_enabled = true;
|
||||
|
|
|
@ -45,7 +45,7 @@ class Addon
|
|||
list($tmp, $addon) = array_map('trim', explode('/', $file));
|
||||
$info = self::getInfo($addon);
|
||||
|
||||
if (Config::get('system', 'show_unsupported_addons')
|
||||
if (DI::config()->get('system', 'show_unsupported_addons')
|
||||
|| strtolower($info['status']) != 'unsupported'
|
||||
|| self::isEnabled($addon)
|
||||
) {
|
||||
|
@ -103,7 +103,7 @@ class Addon
|
|||
$installed_addons = DBA::toArray($r);
|
||||
}
|
||||
|
||||
$addons = Config::get('system', 'addon');
|
||||
$addons = DI::config()->get('system', 'addon');
|
||||
$addons_arr = [];
|
||||
|
||||
if ($addons) {
|
||||
|
@ -210,7 +210,7 @@ class Addon
|
|||
*/
|
||||
public static function reload()
|
||||
{
|
||||
$addons = Config::get('system', 'addon');
|
||||
$addons = DI::config()->get('system', 'addon');
|
||||
if (strlen($addons)) {
|
||||
$r = DBA::select('addon', [], ['installed' => 1]);
|
||||
if (DBA::isResult($r)) {
|
||||
|
@ -348,7 +348,7 @@ class Addon
|
|||
*/
|
||||
public static function saveEnabledList()
|
||||
{
|
||||
return Config::set('system', 'addon', implode(',', self::$addons));
|
||||
return DI::config()->set('system', 'addon', implode(',', self::$addons));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config;
|
||||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\Core\Config\Cache;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -10,10 +12,10 @@ use Friendica\Model;
|
|||
* - The Config-Files (loaded into the FileCache @see Cache\ConfigCache)
|
||||
* - The Config-DB-Table (per Config-DB-model @see Model\Config\Config)
|
||||
*/
|
||||
abstract class Configuration implements IConfiguration
|
||||
abstract class BaseConfig implements IConfig
|
||||
{
|
||||
/**
|
||||
* @var Cache\ConfigCache
|
||||
* @var Cache
|
||||
*/
|
||||
protected $configCache;
|
||||
|
||||
|
@ -23,10 +25,10 @@ abstract class Configuration implements IConfiguration
|
|||
protected $configModel;
|
||||
|
||||
/**
|
||||
* @param Cache\ConfigCache $configCache The configuration cache (based on the config-files)
|
||||
* @param Model\Config\Config $configModel The configuration model
|
||||
* @param Cache $configCache The configuration cache (based on the config-files)
|
||||
* @param Model\Config\Config $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\ConfigCache $configCache, Model\Config\Config $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\Config $configModel)
|
||||
{
|
||||
$this->configCache = $configCache;
|
||||
$this->configModel = $configModel;
|
|
@ -1,7 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config;
|
||||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\Core\PConfig\Cache;
|
||||
use Friendica\Core\PConfig\IPConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -11,10 +13,10 @@ use Friendica\Model;
|
|||
* The configuration cache (@see Cache\PConfigCache) is used for temporary caching of database calls. This will
|
||||
* increase the performance.
|
||||
*/
|
||||
abstract class PConfiguration implements IPConfiguration
|
||||
abstract class BasePConfig implements IPConfig
|
||||
{
|
||||
/**
|
||||
* @var Cache\PConfigCache
|
||||
* @var Cache
|
||||
*/
|
||||
protected $configCache;
|
||||
|
||||
|
@ -24,10 +26,10 @@ abstract class PConfiguration implements IPConfiguration
|
|||
protected $configModel;
|
||||
|
||||
/**
|
||||
* @param Cache\PConfigCache $configCache The configuration cache
|
||||
* @param Model\Config\PConfig $configModel The configuration model
|
||||
* @param Cache $configCache The configuration cache
|
||||
* @param Model\Config\PConfig $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\PConfigCache $configCache, Model\Config\PConfig $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\PConfig $configModel)
|
||||
{
|
||||
$this->configCache = $configCache;
|
||||
$this->configModel = $configModel;
|
||||
|
@ -36,7 +38,7 @@ abstract class PConfiguration implements IPConfiguration
|
|||
/**
|
||||
* Returns the Config Cache
|
||||
*
|
||||
* @return Cache\PConfigCache
|
||||
* @return Cache
|
||||
*/
|
||||
public function getCache()
|
||||
{
|
|
@ -4,7 +4,7 @@ namespace Friendica\Core\Cache;
|
|||
|
||||
use Exception;
|
||||
use Friendica\Core\BaseCache;
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Memcache;
|
||||
|
||||
/**
|
||||
|
@ -26,7 +26,7 @@ class MemcacheCache extends BaseCache implements IMemoryCache
|
|||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct(string $hostname, IConfiguration $config)
|
||||
public function __construct(string $hostname, IConfig $config)
|
||||
{
|
||||
if (!class_exists('Memcache', false)) {
|
||||
throw new Exception('Memcache class isn\'t available');
|
||||
|
|
|
@ -4,7 +4,7 @@ namespace Friendica\Core\Cache;
|
|||
|
||||
use Exception;
|
||||
use Friendica\Core\BaseCache;
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Memcached;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
@ -40,7 +40,7 @@ class MemcachedCache extends BaseCache implements IMemoryCache
|
|||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function __construct(string $hostname, IConfiguration $config, LoggerInterface $logger)
|
||||
public function __construct(string $hostname, IConfig $config, LoggerInterface $logger)
|
||||
{
|
||||
if (!class_exists('Memcached', false)) {
|
||||
throw new Exception('Memcached class isn\'t available');
|
||||
|
|
|
@ -4,7 +4,7 @@ namespace Friendica\Core\Cache;
|
|||
|
||||
use Exception;
|
||||
use Friendica\Core\BaseCache;
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Redis;
|
||||
|
||||
/**
|
||||
|
@ -23,7 +23,7 @@ class RedisCache extends BaseCache implements IMemoryCache
|
|||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct(string $hostname, IConfiguration $config)
|
||||
public function __construct(string $hostname, IConfig $config)
|
||||
{
|
||||
if (!class_exists('Redis', false)) {
|
||||
throw new Exception('Redis class isn\'t available');
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* System Configuration Class
|
||||
*
|
||||
* @file include/Core/Config.php
|
||||
*
|
||||
* Contains the class with methods for system configuration
|
||||
*/
|
||||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\DI;
|
||||
|
||||
/**
|
||||
* Arbitrary system configuration storage
|
||||
*
|
||||
* Note:
|
||||
* If we ever would decide to return exactly the variable type as entered,
|
||||
* we will have fun with the additional features. :-)
|
||||
*/
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* Loads all configuration values of family into a cached storage.
|
||||
*
|
||||
* @param string $cat The category of the configuration value
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function load($cat = "config")
|
||||
{
|
||||
DI::config()->load($cat);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a particular user's config variable given the category name ($family) and a key.
|
||||
*
|
||||
* @param string $cat The category of the configuration value
|
||||
* @param string $key The configuration key to query
|
||||
* @param mixed $default_value optional, The value to return if key is not set (default: null)
|
||||
* @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
|
||||
*/
|
||||
public static function get($cat, $key, $default_value = null, $refresh = false)
|
||||
{
|
||||
return DI::config()->get($cat, $key, $default_value, $refresh);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores a config value ($value) in the category ($cat) under the key ($key)
|
||||
*
|
||||
* Note: Please do not store booleans - convert to 0/1 integer values!
|
||||
*
|
||||
* @param string $cat The category of the configuration value
|
||||
* @param string $key The configuration key to set
|
||||
* @param mixed $value The value to store
|
||||
*
|
||||
* @return bool Operation success
|
||||
*/
|
||||
public static function set($cat, $key, $value)
|
||||
{
|
||||
return DI::config()->set($cat, $key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the given key from the system configuration.
|
||||
*
|
||||
* @param string $cat The category of the configuration value
|
||||
* @param string $key The configuration key to delete
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function delete($cat, $key)
|
||||
{
|
||||
return DI::config()->delete($cat, $key);
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config\Cache;
|
||||
namespace Friendica\Core\Config;
|
||||
|
||||
use ParagonIE\HiddenString\HiddenString;
|
||||
|
||||
|
@ -9,7 +9,7 @@ use ParagonIE\HiddenString\HiddenString;
|
|||
* Initial, all *.config.php files are loaded into this cache with the
|
||||
* ConfigFileLoader ( @see ConfigFileLoader )
|
||||
*/
|
||||
class ConfigCache
|
||||
class Cache
|
||||
{
|
||||
/**
|
||||
* @var array
|
|
@ -5,15 +5,13 @@ namespace Friendica\Core\Config;
|
|||
/**
|
||||
* Interface for accessing system wide configurations
|
||||
*/
|
||||
interface IConfiguration
|
||||
interface IConfig
|
||||
{
|
||||
|
||||
/**
|
||||
* Loads all configuration values of family into a cached storage.
|
||||
*
|
||||
* All configuration values of the system are stored in the cache ( @see ConfigCache )
|
||||
*
|
||||
* @param string $cat The category of the configuration value
|
||||
* All configuration values of the system are stored in the cache ( @param string $cat The category of the configuration value
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
@ -67,7 +65,7 @@ interface IConfiguration
|
|||
/**
|
||||
* Returns the Config Cache
|
||||
*
|
||||
* @return Cache\ConfigCache
|
||||
* @return Cache
|
||||
*/
|
||||
function getCache();
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Friendica\Core\Config;
|
||||
|
||||
use Friendica\Core\BaseConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -11,7 +12,7 @@ use Friendica\Model;
|
|||
* Default Configuration type.
|
||||
* Provides the best performance for pages loading few configuration variables.
|
||||
*/
|
||||
class JitConfiguration extends Configuration
|
||||
class JitConfig extends BaseConfig
|
||||
{
|
||||
/**
|
||||
* @var array Array of already loaded db values (even if there was no value)
|
||||
|
@ -19,10 +20,10 @@ class JitConfiguration extends Configuration
|
|||
private $db_loaded;
|
||||
|
||||
/**
|
||||
* @param Cache\ConfigCache $configCache The configuration cache (based on the config-files)
|
||||
* @param Cache $configCache The configuration cache (based on the config-files)
|
||||
* @param Model\Config\Config $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\ConfigCache $configCache, Model\Config\Config $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\Config $configModel)
|
||||
{
|
||||
parent::__construct($configCache, $configModel);
|
||||
$this->db_loaded = [];
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Friendica\Core\Config;
|
||||
|
||||
use Friendica\Core\BaseConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -10,16 +11,16 @@ use Friendica\Model;
|
|||
*
|
||||
* Minimizes the number of database queries to retrieve configuration values at the cost of memory.
|
||||
*/
|
||||
class PreloadConfiguration extends Configuration
|
||||
class PreloadConfig extends BaseConfig
|
||||
{
|
||||
/** @var bool */
|
||||
private $config_loaded;
|
||||
|
||||
/**
|
||||
* @param Cache\ConfigCache $configCache The configuration cache (based on the config-files)
|
||||
* @param Cache $configCache The configuration cache (based on the config-files)
|
||||
* @param Model\Config\Config $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\ConfigCache $configCache, Model\Config\Config $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\Config $configModel)
|
||||
{
|
||||
parent::__construct($configCache, $configModel);
|
||||
$this->config_loaded = false;
|
|
@ -6,7 +6,7 @@ namespace Friendica\Core;
|
|||
|
||||
use DOMDocument;
|
||||
use Exception;
|
||||
use Friendica\Core\Config\Cache\ConfigCache;
|
||||
use Friendica\Core\Config\Cache;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBStructure;
|
||||
use Friendica\DI;
|
||||
|
@ -129,12 +129,12 @@ class Installer
|
|||
* - Creates `config/local.config.php`
|
||||
* - Installs Database Structure
|
||||
*
|
||||
* @param ConfigCache $configCache The config cache with all config relevant information
|
||||
* @param Cache $configCache The config cache with all config relevant information
|
||||
*
|
||||
* @return bool true if the config was created, otherwise false
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*/
|
||||
public function createConfig(ConfigCache $configCache)
|
||||
public function createConfig(Cache $configCache)
|
||||
{
|
||||
$basepath = $configCache->get('system', 'basepath');
|
||||
|
||||
|
@ -618,12 +618,12 @@ class Installer
|
|||
/**
|
||||
* Setup the default cache for a new installation
|
||||
*
|
||||
* @param ConfigCache $configCache The configuration cache
|
||||
* @param string $basePath The determined basepath
|
||||
* @param Cache $configCache The configuration cache
|
||||
* @param string $basePath The determined basepath
|
||||
*
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*/
|
||||
public function setUpCache(ConfigCache $configCache, $basePath)
|
||||
public function setUpCache(Cache $configCache, $basePath)
|
||||
{
|
||||
$configCache->set('config', 'php_path' , $this->getPHPPath());
|
||||
$configCache->set('system', 'basepath' , $basePath);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Friendica\Core\Session\ISession;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Util\Strings;
|
||||
|
@ -40,7 +40,7 @@ class L10n
|
|||
*/
|
||||
private $logger;
|
||||
|
||||
public function __construct(IConfiguration $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get)
|
||||
public function __construct(IConfig $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get)
|
||||
{
|
||||
$this->dba = $dba;
|
||||
$this->logger = $logger;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config\Cache;
|
||||
namespace Friendica\Core\PConfig;
|
||||
|
||||
use ParagonIE\HiddenString\HiddenString;
|
||||
|
||||
/**
|
||||
* The Friendica config cache for users
|
||||
*/
|
||||
class PConfigCache
|
||||
class Cache
|
||||
{
|
||||
/**
|
||||
* @var array
|
|
@ -1,11 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config;
|
||||
namespace Friendica\Core\PConfig;
|
||||
|
||||
/**
|
||||
* Interface for accessing user specific configurations
|
||||
*/
|
||||
interface IPConfiguration
|
||||
interface IPConfig
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -17,7 +17,7 @@ interface IPConfiguration
|
|||
* @param string $cat The category of the configuration value
|
||||
*
|
||||
* @return void
|
||||
* @see PConfigCache
|
||||
* @see Cache
|
||||
*
|
||||
*/
|
||||
function load(int $uid, string $cat = 'config');
|
||||
|
@ -76,7 +76,7 @@ interface IPConfiguration
|
|||
/**
|
||||
* Returns the Config Cache
|
||||
*
|
||||
* @return Cache\PConfigCache
|
||||
* @return Cache
|
||||
*/
|
||||
function getCache();
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config;
|
||||
namespace Friendica\Core\PConfig;
|
||||
|
||||
use Friendica\Core\BasePConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -11,7 +12,7 @@ use Friendica\Model;
|
|||
* Default Configuration type.
|
||||
* Provides the best performance for pages loading few configuration variables.
|
||||
*/
|
||||
class JitPConfiguration extends PConfiguration
|
||||
class JitPConfig extends BasePConfig
|
||||
{
|
||||
/**
|
||||
* @var array Array of already loaded db values (even if there was no value)
|
||||
|
@ -19,10 +20,10 @@ class JitPConfiguration extends PConfiguration
|
|||
private $db_loaded;
|
||||
|
||||
/**
|
||||
* @param Cache\PConfigCache $configCache The configuration cache
|
||||
* @param Cache $configCache The configuration cache
|
||||
* @param Model\Config\PConfig $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\PConfigCache $configCache, Model\Config\PConfig $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\PConfig $configModel)
|
||||
{
|
||||
parent::__construct($configCache, $configModel);
|
||||
$this->db_loaded = [];
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Core\Config;
|
||||
namespace Friendica\Core\PConfig;
|
||||
|
||||
use Friendica\Core\BasePConfig;
|
||||
use Friendica\Model;
|
||||
|
||||
/**
|
||||
|
@ -10,16 +11,16 @@ use Friendica\Model;
|
|||
*
|
||||
* Minimizes the number of database queries to retrieve configuration values at the cost of memory.
|
||||
*/
|
||||
class PreloadPConfiguration extends PConfiguration
|
||||
class PreloadPConfig extends BasePConfig
|
||||
{
|
||||
/** @var array */
|
||||
private $config_loaded;
|
||||
|
||||
/**
|
||||
* @param Cache\PConfigCache $configCache The configuration cache
|
||||
* @param Cache $configCache The configuration cache
|
||||
* @param Model\Config\PConfig $configModel The configuration model
|
||||
*/
|
||||
public function __construct(Cache\PConfigCache $configCache, Model\Config\PConfig $configModel)
|
||||
public function __construct(Cache $configCache, Model\Config\PConfig $configModel)
|
||||
{
|
||||
parent::__construct($configCache, $configModel);
|
||||
$this->config_loaded = [];
|
|
@ -3,7 +3,7 @@
|
|||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ final class Process
|
|||
private $mode;
|
||||
|
||||
/**
|
||||
* @var IConfiguration
|
||||
* @var IConfig
|
||||
*/
|
||||
private $config;
|
||||
|
||||
|
@ -37,7 +37,7 @@ final class Process
|
|||
*/
|
||||
private $basePath;
|
||||
|
||||
public function __construct(LoggerInterface $logger, App\Mode $mode, IConfiguration $config, string $basepath)
|
||||
public function __construct(LoggerInterface $logger, App\Mode $mode, IConfig $config, string $basepath)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
$this->mode = $mode;
|
||||
|
|
|
@ -253,7 +253,7 @@ class Search
|
|||
*/
|
||||
public static function searchGlobalContact($search, $mode, int $page = 1)
|
||||
{
|
||||
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
|
||||
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
@ -267,7 +267,7 @@ class Search
|
|||
}
|
||||
|
||||
// check if searching in the local global contact table is enabled
|
||||
if (Config::get('system', 'poco_local_search')) {
|
||||
if (DI::config()->get('system', 'poco_local_search')) {
|
||||
$return = GContact::searchByName($search, $mode);
|
||||
} else {
|
||||
$p = $page > 1 ? 'p=' . $page : '';
|
||||
|
@ -290,6 +290,6 @@ class Search
|
|||
*/
|
||||
public static function getGlobalDirectory()
|
||||
{
|
||||
return Config::get('system', 'directory', self::DEFAULT_DIRECTORY);
|
||||
return DI::config()->get('system', 'directory', self::DEFAULT_DIRECTORY);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
namespace Friendica\Core;
|
||||
|
||||
use Exception;
|
||||
use Friendica\Core\Config\IConfiguration;
|
||||
use Friendica\Core\Config\IConfig;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Model\Storage;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
@ -35,7 +35,7 @@ class StorageManager
|
|||
|
||||
/** @var Database */
|
||||
private $dba;
|
||||
/** @var IConfiguration */
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
/** @var LoggerInterface */
|
||||
private $logger;
|
||||
|
@ -47,11 +47,11 @@ class StorageManager
|
|||
|
||||
/**
|
||||
* @param Database $dba
|
||||
* @param IConfiguration $config
|
||||
* @param IConfig $config
|
||||
* @param LoggerInterface $logger
|
||||
* @param L10n $l10n
|
||||
*/
|
||||
public function __construct(Database $dba, IConfiguration $config, LoggerInterface $logger, L10n $l10n)
|
||||
public function __construct(Database $dba, IConfig $config, LoggerInterface $logger, L10n $l10n)
|
||||
{
|
||||
$this->dba = $dba;
|
||||
$this->config = $config;
|
||||
|
|
|
@ -19,7 +19,7 @@ class Theme
|
|||
{
|
||||
public static function getAllowedList()
|
||||
{
|
||||
$allowed_themes_str = Config::get('system', 'allowed_themes');
|
||||
$allowed_themes_str = DI::config()->get('system', 'allowed_themes');
|
||||
$allowed_themes_raw = explode(',', str_replace(' ', '', $allowed_themes_str));
|
||||
$allowed_themes = [];
|
||||
if (count($allowed_themes_raw)) {
|
||||
|
@ -36,7 +36,7 @@ class Theme
|
|||
|
||||
public static function setAllowedList(array $allowed_themes)
|
||||
{
|
||||
Config::set('system', 'allowed_themes', implode(',', array_unique($allowed_themes)));
|
||||
DI::config()->set('system', 'allowed_themes', implode(',', array_unique($allowed_themes)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -29,14 +29,14 @@ class Update
|
|||
}
|
||||
|
||||
// Don't check the status if the last update was failed
|
||||
if (Config::get('system', 'update', Update::SUCCESS, true) == Update::FAILED) {
|
||||
if (DI::config()->get('system', 'update', Update::SUCCESS, true) == Update::FAILED) {
|
||||
return;
|
||||
}
|
||||
|
||||
$build = Config::get('system', 'build');
|
||||
$build = DI::config()->get('system', 'build');
|
||||
|
||||
if (empty($build)) {
|
||||
Config::set('system', 'build', DB_UPDATE_VERSION - 1);
|
||||
DI::config()->set('system', 'build', DB_UPDATE_VERSION - 1);
|
||||
$build = DB_UPDATE_VERSION - 1;
|
||||
}
|
||||
|
||||
|
@ -77,11 +77,11 @@ class Update
|
|||
DI::lock()->release('dbupdate', true);
|
||||
}
|
||||
|
||||
$build = Config::get('system', 'build', null, true);
|
||||
$build = DI::config()->get('system', 'build', null, true);
|
||||
|
||||
if (empty($build) || ($build > DB_UPDATE_VERSION)) {
|
||||
$build = DB_UPDATE_VERSION - 1;
|
||||
Config::set('system', 'build', $build);
|
||||
DI::config()->set('system', 'build', $build);
|
||||
}
|
||||
|
||||
if ($build != DB_UPDATE_VERSION || $force) {
|
||||
|
@ -90,7 +90,7 @@ class Update
|
|||
$stored = intval($build);
|
||||
$current = intval(DB_UPDATE_VERSION);
|
||||
if ($stored < $current || $force) {
|
||||
Config::load('database');
|
||||
DI::config()->load('database');
|
||||
|
||||
Logger::info('Update starting.', ['from' => $stored, 'to' => $current]);
|
||||
|
||||
|
@ -99,7 +99,7 @@ class Update
|
|||
if (DI::lock()->acquire('dbupdate', 120, Cache\Duration::INFINITE)) {
|
||||
|
||||
// Checks if the build changed during Lock acquiring (so no double update occurs)
|
||||
$retryBuild = Config::get('system', 'build', null, true);
|
||||
$retryBuild = DI::config()->get('system', 'build', null, true);
|
||||
if ($retryBuild !== $build) {
|
||||
Logger::info('Update already done.', ['from' => $stored, 'to' => $current]);
|
||||
DI::lock()->release('dbupdate');
|
||||
|
@ -110,7 +110,7 @@ class Update
|
|||
for ($x = $stored + 1; $x <= $current; $x++) {
|
||||
$r = self::runUpdateFunction($x, 'pre_update');
|
||||
if (!$r) {
|
||||
Config::set('system', 'update', Update::FAILED);
|
||||
DI::config()->set('system', 'update', Update::FAILED);
|
||||
DI::lock()->release('dbupdate');
|
||||
return $r;
|
||||
}
|
||||
|
@ -126,12 +126,12 @@ class Update
|
|||
);
|
||||
}
|
||||
Logger::error('Update ERROR.', ['from' => $stored, 'to' => $current, 'retval' => $retval]);
|
||||
Config::set('system', 'update', Update::FAILED);
|
||||
DI::config()->set('system', 'update', Update::FAILED);
|
||||
DI::lock()->release('dbupdate');
|
||||
return $retval;
|
||||
} else {
|
||||
Config::set('database', 'last_successful_update', $current);
|
||||
Config::set('database', 'last_successful_update_time', time());
|
||||
DI::config()->set('database', 'last_successful_update', $current);
|
||||
DI::config()->set('database', 'last_successful_update_time', time());
|
||||
Logger::info('Update finished.', ['from' => $stored, 'to' => $current]);
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,7 @@ class Update
|
|||
for ($x = $stored + 1; $x <= $current; $x++) {
|
||||
$r = self::runUpdateFunction($x, 'update');
|
||||
if (!$r) {
|
||||
Config::set('system', 'update', Update::FAILED);
|
||||
DI::config()->set('system', 'update', Update::FAILED);
|
||||
DI::lock()->release('dbupdate');
|
||||
return $r;
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ class Update
|
|||
self::updateSuccessfull($stored, $current);
|
||||
}
|
||||
|
||||
Config::set('system', 'update', Update::SUCCESS);
|
||||
DI::config()->set('system', 'update', Update::SUCCESS);
|
||||
DI::lock()->release('dbupdate');
|
||||
}
|
||||
}
|
||||
|
@ -197,11 +197,11 @@ class Update
|
|||
DI::lock()->release('dbupdate_function');
|
||||
return false;
|
||||
} else {
|
||||
Config::set('database', 'last_successful_update_function', $funcname);
|
||||
Config::set('database', 'last_successful_update_function_time', time());
|
||||
DI::config()->set('database', 'last_successful_update_function', $funcname);
|
||||
DI::config()->set('database', 'last_successful_update_function_time', time());
|
||||
|
||||
if ($prefix == 'update') {
|
||||
Config::set('system', 'build', $x);
|
||||
DI::config()->set('system', 'build', $x);
|
||||
}
|
||||
|
||||
DI::lock()->release('dbupdate_function');
|
||||
|
@ -212,11 +212,11 @@ class Update
|
|||
} else {
|
||||
Logger::info('Update function skipped.', ['function' => $funcname]);
|
||||
|
||||
Config::set('database', 'last_successful_update_function', $funcname);
|
||||
Config::set('database', 'last_successful_update_function_time', time());
|
||||
DI::config()->set('database', 'last_successful_update_function', $funcname);
|
||||
DI::config()->set('database', 'last_successful_update_function_time', time());
|
||||
|
||||
if ($prefix == 'update') {
|
||||
Config::set('system', 'build', $x);
|
||||
DI::config()->set('system', 'build', $x);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -232,7 +232,7 @@ class Update
|
|||
*/
|
||||
private static function updateFailed($update_id, $error_message) {
|
||||
//send the administrators an e-mail
|
||||
$condition = ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))), 'parent-uid' => 0];
|
||||
$condition = ['email' => explode(",", str_replace(" ", "", DI::config()->get('config', 'admin_email'))), 'parent-uid' => 0];
|
||||
$adminlist = DBA::select('user', ['uid', 'language', 'email'], $condition, ['order' => ['uid']]);
|
||||
|
||||
// No valid result?
|
||||
|
@ -281,7 +281,7 @@ class Update
|
|||
private static function updateSuccessfull($from_build, $to_build)
|
||||
{
|
||||
//send the administrators an e-mail
|
||||
$condition = ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))), 'parent-uid' => 0];
|
||||
$condition = ['email' => explode(",", str_replace(" ", "", DI::config()->get('config', 'admin_email'))), 'parent-uid' => 0];
|
||||
$adminlist = DBA::select('user', ['uid', 'language', 'email'], $condition, ['order' => ['uid']]);
|
||||
|
||||
if (DBA::isResult($adminlist)) {
|
||||
|
|
|
@ -63,9 +63,9 @@ class Worker
|
|||
self::startProcess();
|
||||
|
||||
// Kill stale processes every 5 minutes
|
||||
$last_cleanup = Config::get('system', 'worker_last_cleaned', 0);
|
||||
$last_cleanup = DI::config()->get('system', 'worker_last_cleaned', 0);
|
||||
if (time() > ($last_cleanup + 300)) {
|
||||
Config::set('system', 'worker_last_cleaned', time());
|
||||
DI::config()->set('system', 'worker_last_cleaned', time());
|
||||
self::killStaleWorkers();
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ class Worker
|
|||
}
|
||||
|
||||
// Quit the worker once every cron interval
|
||||
if (time() > ($starttime + (Config::get('system', 'cron_interval') * 60))) {
|
||||
if (time() > ($starttime + (DI::config()->get('system', 'cron_interval') * 60))) {
|
||||
Logger::info('Process lifetime reached, respawning.');
|
||||
self::spawnWorker();
|
||||
return;
|
||||
|
@ -156,7 +156,7 @@ class Worker
|
|||
}
|
||||
|
||||
// Cleaning up. Possibly not needed, but it doesn't harm anything.
|
||||
if (Config::get('system', 'worker_daemon_mode', false)) {
|
||||
if (DI::config()->get('system', 'worker_daemon_mode', false)) {
|
||||
self::IPCSetJobState(false);
|
||||
}
|
||||
Logger::log("Couldn't select a workerqueue entry, quitting process " . getmypid() . ".", Logger::DEBUG);
|
||||
|
@ -252,7 +252,7 @@ class Worker
|
|||
$mypid = getmypid();
|
||||
|
||||
// Quit when in maintenance
|
||||
if (Config::get('system', 'maintenance', false, true)) {
|
||||
if (DI::config()->get('system', 'maintenance', false, true)) {
|
||||
Logger::log("Maintenance mode - quit process ".$mypid, Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
@ -297,7 +297,7 @@ class Worker
|
|||
$stamp = (float)microtime(true);
|
||||
$condition = ["`id` = ? AND `next_try` < ?", $queue['id'], DateTimeFormat::utcNow()];
|
||||
if (DBA::update('workerqueue', ['done' => true], $condition)) {
|
||||
Config::set('system', 'last_worker_execution', DateTimeFormat::utcNow());
|
||||
DI::config()->set('system', 'last_worker_execution', DateTimeFormat::utcNow());
|
||||
}
|
||||
self::$db_duration = (microtime(true) - $stamp);
|
||||
self::$db_duration_write += (microtime(true) - $stamp);
|
||||
|
@ -343,7 +343,7 @@ class Worker
|
|||
|
||||
$stamp = (float)microtime(true);
|
||||
if (DBA::update('workerqueue', ['done' => true], ['id' => $queue["id"]])) {
|
||||
Config::set('system', 'last_worker_execution', DateTimeFormat::utcNow());
|
||||
DI::config()->set('system', 'last_worker_execution', DateTimeFormat::utcNow());
|
||||
}
|
||||
self::$db_duration = (microtime(true) - $stamp);
|
||||
self::$db_duration_write += (microtime(true) - $stamp);
|
||||
|
@ -441,7 +441,7 @@ class Worker
|
|||
|
||||
DI::profiler()->saveLog(DI::logger(), "ID " . $queue["id"] . ": " . $funcname);
|
||||
|
||||
$cooldown = Config::get("system", "worker_cooldown", 0);
|
||||
$cooldown = DI::config()->get("system", "worker_cooldown", 0);
|
||||
|
||||
if ($cooldown > 0) {
|
||||
Logger::info('Cooldown.', ['priority' => $queue["priority"], 'id' => $queue["id"], 'cooldown' => $cooldown]);
|
||||
|
@ -458,10 +458,10 @@ class Worker
|
|||
private static function maxConnectionsReached()
|
||||
{
|
||||
// Fetch the max value from the config. This is needed when the system cannot detect the correct value by itself.
|
||||
$max = Config::get("system", "max_connections");
|
||||
$max = DI::config()->get("system", "max_connections");
|
||||
|
||||
// Fetch the percentage level where the worker will get active
|
||||
$maxlevel = Config::get("system", "max_connections_level", 75);
|
||||
$maxlevel = DI::config()->get("system", "max_connections_level", 75);
|
||||
|
||||
if ($max == 0) {
|
||||
// the maximum number of possible user connections can be a system variable
|
||||
|
@ -613,7 +613,7 @@ class Worker
|
|||
*/
|
||||
private static function tooMuchWorkers()
|
||||
{
|
||||
$queues = Config::get("system", "worker_queues", 10);
|
||||
$queues = DI::config()->get("system", "worker_queues", 10);
|
||||
|
||||
$maxqueues = $queues;
|
||||
|
||||
|
@ -622,21 +622,21 @@ class Worker
|
|||
// Decrease the number of workers at higher load
|
||||
$load = System::currentLoad();
|
||||
if ($load) {
|
||||
$maxsysload = intval(Config::get("system", "maxloadavg", 20));
|
||||
$maxsysload = intval(DI::config()->get("system", "maxloadavg", 20));
|
||||
|
||||
/* Default exponent 3 causes queues to rapidly decrease as load increases.
|
||||
* If you have 20 max queues at idle, then you get only 5 queues at 37.1% of $maxsysload.
|
||||
* For some environments, this rapid decrease is not needed.
|
||||
* With exponent 1, you could have 20 max queues at idle and 13 at 37% of $maxsysload.
|
||||
*/
|
||||
$exponent = intval(Config::get('system', 'worker_load_exponent', 3));
|
||||
$exponent = intval(DI::config()->get('system', 'worker_load_exponent', 3));
|
||||
$slope = pow(max(0, $maxsysload - $load) / $maxsysload, $exponent);
|
||||
$queues = intval(ceil($slope * $maxqueues));
|
||||
|
||||
$processlist = '';
|
||||
|
||||
if (Config::get('system', 'worker_jpm')) {
|
||||
$intervals = explode(',', Config::get('system', 'worker_jpm_range'));
|
||||
if (DI::config()->get('system', 'worker_jpm')) {
|
||||
$intervals = explode(',', DI::config()->get('system', 'worker_jpm_range'));
|
||||
$jobs_per_minute = [];
|
||||
foreach ($intervals as $interval) {
|
||||
if ($interval == 0) {
|
||||
|
@ -664,7 +664,7 @@ class Worker
|
|||
|
||||
$deferred = self::deferredEntries();
|
||||
|
||||
if (Config::get('system', 'worker_debug')) {
|
||||
if (DI::config()->get('system', 'worker_debug')) {
|
||||
$waiting_processes = 0;
|
||||
// Now adding all processes with workerqueue entries
|
||||
$stamp = (float)microtime(true);
|
||||
|
@ -704,7 +704,7 @@ class Worker
|
|||
|
||||
$processlist .= ' ('.implode(', ', $listitem).')';
|
||||
|
||||
if (Config::get("system", "worker_fastlane", false) && ($queues > 0) && ($active >= $queues) && self::entriesExists()) {
|
||||
if (DI::config()->get("system", "worker_fastlane", false) && ($queues > 0) && ($active >= $queues) && self::entriesExists()) {
|
||||
$top_priority = self::highestPriority();
|
||||
$high_running = self::processWithPriorityActive($top_priority);
|
||||
|
||||
|
@ -717,9 +717,9 @@ class Worker
|
|||
Logger::log("Load: " . $load ."/" . $maxsysload . " - processes: " . $deferred . "/" . $active . "/" . $waiting_processes . $processlist . " - maximum: " . $queues . "/" . $maxqueues, Logger::DEBUG);
|
||||
|
||||
// Are there fewer workers running as possible? Then fork a new one.
|
||||
if (!Config::get("system", "worker_dont_fork", false) && ($queues > ($active + 1)) && self::entriesExists()) {
|
||||
if (!DI::config()->get("system", "worker_dont_fork", false) && ($queues > ($active + 1)) && self::entriesExists()) {
|
||||
Logger::log("Active workers: ".$active."/".$queues." Fork a new worker.", Logger::DEBUG);
|
||||
if (Config::get('system', 'worker_daemon_mode', false)) {
|
||||
if (DI::config()->get('system', 'worker_daemon_mode', false)) {
|
||||
self::IPCSetJobState(true);
|
||||
} else {
|
||||
self::spawnWorker();
|
||||
|
@ -728,7 +728,7 @@ class Worker
|
|||
}
|
||||
|
||||
// if there are too much worker, we don't spawn a new one.
|
||||
if (Config::get('system', 'worker_daemon_mode', false) && ($active > $queues)) {
|
||||
if (DI::config()->get('system', 'worker_daemon_mode', false) && ($active > $queues)) {
|
||||
self::IPCSetJobState(false);
|
||||
}
|
||||
|
||||
|
@ -782,7 +782,7 @@ class Worker
|
|||
return [];
|
||||
}
|
||||
|
||||
$limit = Config::get('system', 'worker_fetch_limit', 1);
|
||||
$limit = DI::config()->get('system', 'worker_fetch_limit', 1);
|
||||
|
||||
$ids = [];
|
||||
$stamp = (float)microtime(true);
|
||||
|
@ -890,7 +890,7 @@ class Worker
|
|||
|
||||
// If there is no result we check without priority limit
|
||||
if (empty($ids)) {
|
||||
$limit = Config::get('system', 'worker_fetch_limit', 1);
|
||||
$limit = DI::config()->get('system', 'worker_fetch_limit', 1);
|
||||
|
||||
$stamp = (float)microtime(true);
|
||||
$condition = ["`pid` = 0 AND NOT `done` AND `next_try` < ?", DateTimeFormat::utcNow()];
|
||||
|
@ -976,7 +976,7 @@ class Worker
|
|||
*/
|
||||
public static function callWorker()
|
||||
{
|
||||
if (!Config::get("system", "frontend_worker")) {
|
||||
if (!DI::config()->get("system", "frontend_worker")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -992,7 +992,7 @@ class Worker
|
|||
*/
|
||||
public static function executeIfIdle()
|
||||
{
|
||||
if (!Config::get("system", "frontend_worker")) {
|
||||
if (!DI::config()->get("system", "frontend_worker")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1000,11 +1000,11 @@ class Worker
|
|||
if (function_exists("proc_open")) {
|
||||
// When was the last time that we called the worker?
|
||||
// Less than one minute? Then we quit
|
||||
if ((time() - Config::get("system", "worker_started")) < 60) {
|
||||
if ((time() - DI::config()->get("system", "worker_started")) < 60) {
|
||||
return;
|
||||
}
|
||||
|
||||
Config::set("system", "worker_started", time());
|
||||
DI::config()->set("system", "worker_started", time());
|
||||
|
||||
// Do we have enough running workers? Then we quit here.
|
||||
if (self::tooMuchWorkers()) {
|
||||
|
@ -1044,7 +1044,7 @@ class Worker
|
|||
*/
|
||||
public static function clearProcesses()
|
||||
{
|
||||
$timeout = Config::get("system", "frontend_worker_timeout", 10);
|
||||
$timeout = DI::config()->get("system", "frontend_worker_timeout", 10);
|
||||
|
||||
/// @todo We should clean up the corresponding workerqueue entries as well
|
||||
$stamp = (float)microtime(true);
|
||||
|
@ -1093,7 +1093,7 @@ class Worker
|
|||
$process->run($command, $args);
|
||||
|
||||
// after spawning we have to remove the flag.
|
||||
if (Config::get('system', 'worker_daemon_mode', false)) {
|
||||
if (DI::config()->get('system', 'worker_daemon_mode', false)) {
|
||||
self::IPCSetJobState(false);
|
||||
}
|
||||
}
|
||||
|
@ -1132,7 +1132,7 @@ class Worker
|
|||
|
||||
$priority = PRIORITY_MEDIUM;
|
||||
// Don't fork from frontend tasks by default
|
||||
$dont_fork = Config::get("system", "worker_dont_fork", false) || !DI::mode()->isBackend();
|
||||
$dont_fork = DI::config()->get("system", "worker_dont_fork", false) || !DI::mode()->isBackend();
|
||||
$created = DateTimeFormat::utcNow();
|
||||
$force_priority = false;
|
||||
|
||||
|
@ -1192,7 +1192,7 @@ class Worker
|
|||
}
|
||||
|
||||
// We tell the daemon that a new job entry exists
|
||||
if (Config::get('system', 'worker_daemon_mode', false)) {
|
||||
if (DI::config()->get('system', 'worker_daemon_mode', false)) {
|
||||
// We don't have to set the IPC flag - this is done in "tooMuchWorkers"
|
||||
return $added;
|
||||
}
|
||||
|
@ -1246,7 +1246,7 @@ class Worker
|
|||
$id = $queue['id'];
|
||||
$priority = $queue['priority'];
|
||||
|
||||
$max_level = Config::get('system', 'worker_defer_limit');
|
||||
$max_level = DI::config()->get('system', 'worker_defer_limit');
|
||||
|
||||
$new_retrial = self::getNextRetrial($queue, $max_level);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue