|
@@ -246,6 +246,9 @@ class Pico
|
|
*/
|
|
*/
|
|
public function run()
|
|
public function run()
|
|
{
|
|
{
|
|
|
|
+ // lock config
|
|
|
|
+ $this->config = is_array($this->config) ? $this->config : array();
|
|
|
|
+
|
|
// load plugins
|
|
// load plugins
|
|
$this->loadPlugins();
|
|
$this->loadPlugins();
|
|
$this->triggerEvent('onPluginsLoaded', array(&$this->plugins));
|
|
$this->triggerEvent('onPluginsLoaded', array(&$this->plugins));
|
|
@@ -418,7 +421,7 @@ class Pico
|
|
|
|
|
|
$configFile = $this->getConfigDir() . 'config.php';
|
|
$configFile = $this->getConfigDir() . 'config.php';
|
|
$config = file_exists($configFile) ? require($configFile) : null;
|
|
$config = file_exists($configFile) ? require($configFile) : null;
|
|
- $this->config = is_array($config) ? $config + $defaultConfig : $defaultConfig;
|
|
|
|
|
|
+ $this->config += is_array($config) ? $config + $defaultConfig : $defaultConfig;
|
|
|
|
|
|
if (empty($this->config['base_url'])) {
|
|
if (empty($this->config['base_url'])) {
|
|
$this->config['base_url'] = $this->getBaseUrl();
|
|
$this->config['base_url'] = $this->getBaseUrl();
|
|
@@ -437,6 +440,29 @@ class Pico
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Sets Picos config before calling Pico::run()
|
|
|
|
+ *
|
|
|
|
+ * This method allows you to modify Picos config without creating a
|
|
|
|
+ * {@path "config/config.php"} or changing some of its variables before
|
|
|
|
+ * Pico starts processing. It can only be called between the constructor
|
|
|
|
+ * call and Pico::run(). Options set with this method cannot be overwritten
|
|
|
|
+ * by {@path "config/config.php"}.
|
|
|
|
+ *
|
|
|
|
+ * @param array $config array with configuration variables, like
|
|
|
|
+ * $config in {@path "config/config.php"}
|
|
|
|
+ * @return void
|
|
|
|
+ * @throws RuntimeException thrown if Pico already started processing
|
|
|
|
+ */
|
|
|
|
+ public function setConfig(array $config)
|
|
|
|
+ {
|
|
|
|
+ if ($this->config !== null) {
|
|
|
|
+ throw new RuntimeException('You cannot modify Picos config after processing has started');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $this->config = $config;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Returns either the value of the specified config variable or
|
|
* Returns either the value of the specified config variable or
|
|
* the config array
|
|
* the config array
|