Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Napoli <matthieu@mnapoli.fr>2015-02-02 01:04:02 +0300
committerMatthieu Napoli <matthieu@mnapoli.fr>2015-02-10 00:56:03 +0300
commita028d179e99221149466661f0d7c73feebd348d2 (patch)
treec0685381ebb739c33147189aac5a51edf552c3ce /core/Container
parente084b065d0b8abd8684fb74be4d1e0e66db33f74 (diff)
ref #6609 Plugins can provide their own config files
Diffstat (limited to 'core/Container')
-rw-r--r--core/Container/ContainerFactory.php23
1 files changed, 19 insertions, 4 deletions
diff --git a/core/Container/ContainerFactory.php b/core/Container/ContainerFactory.php
index bf3b157ba8..4098b1e204 100644
--- a/core/Container/ContainerFactory.php
+++ b/core/Container/ContainerFactory.php
@@ -13,6 +13,7 @@ use DI\ContainerBuilder;
use Doctrine\Common\Cache\ArrayCache;
use Piwik\Config;
use Piwik\Development;
+use Piwik\Plugin\Manager;
/**
* Creates a configured DI container.
@@ -41,10 +42,6 @@ class ContainerFactory
*/
public function create()
{
- if (!class_exists('DI\ContainerBuilder')) {
- throw new \Exception('DI\ContainerBuilder could not be found, maybe you are using Piwik from git and need to update Composer: php composer.phar update');
- }
-
$builder = new ContainerBuilder();
$builder->useAnnotations(false);
@@ -56,6 +53,9 @@ class ContainerFactory
// Global config
$builder->addDefinitions(PIWIK_USER_PATH . '/config/global.php');
+ // Plugin configs
+ $this->addPluginConfigs($builder);
+
// Development config
if (Development::isEnabled()) {
$builder->addDefinitions(PIWIK_USER_PATH . '/config/environment/dev.php');
@@ -82,4 +82,19 @@ class ContainerFactory
$builder->addDefinitions($file);
}
+
+ private function addPluginConfigs(ContainerBuilder $builder)
+ {
+ $plugins = Manager::getInstance()->getActivatedPluginsFromConfig();
+
+ foreach ($plugins as $plugin) {
+ $file = Manager::getPluginsDirectory() . $plugin . '/config/config.php';
+
+ if (! file_exists($file)) {
+ continue;
+ }
+
+ $builder->addDefinitions($file);
+ }
+ }
}