Allow multiple calls to Pico::setConfig()
This commit is contained in:
parent
04a1c603d0
commit
b09433a37b
15
lib/Pico.php
15
lib/Pico.php
@ -78,6 +78,13 @@ class Pico
|
||||
*/
|
||||
protected $themesDir;
|
||||
|
||||
/**
|
||||
* Boolean indicating whether Picos processing started yet
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $locked = false;
|
||||
|
||||
/**
|
||||
* List of loaded plugins
|
||||
*
|
||||
@ -246,8 +253,8 @@ class Pico
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
// lock config
|
||||
$this->config = is_array($this->config) ? $this->config : array();
|
||||
// lock Pico
|
||||
$this->locked = true;
|
||||
|
||||
// load plugins
|
||||
$this->loadPlugins();
|
||||
@ -421,6 +428,8 @@ class Pico
|
||||
|
||||
$configFile = $this->getConfigDir() . 'config.php';
|
||||
$config = file_exists($configFile) ? require($configFile) : null;
|
||||
|
||||
$this->config = is_array($this->config) ? $this->config : array();
|
||||
$this->config += is_array($config) ? $config + $defaultConfig : $defaultConfig;
|
||||
|
||||
if (empty($this->config['base_url'])) {
|
||||
@ -456,7 +465,7 @@ class Pico
|
||||
*/
|
||||
public function setConfig(array $config)
|
||||
{
|
||||
if ($this->config !== null) {
|
||||
if ($this->locked) {
|
||||
throw new RuntimeException('You cannot modify Picos config after processing has started');
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user