aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/di/processor/config.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2012-09-01 19:21:24 +0200
committerNils Adermann <naderman@naderman.de>2012-09-01 19:21:24 +0200
commitc539c2b0f9f736da816422320d6f58e6f414f54e (patch)
tree668e2e5658a1c7dac452e49081665d1bf7a86a39 /phpBB/includes/di/processor/config.php
parent66b60ddba848593c2e644d7784a3bde9872b2a24 (diff)
parent282a80077d4630ba59043fffe59e8a7ce8619ecb (diff)
downloadforums-c539c2b0f9f736da816422320d6f58e6f414f54e.tar
forums-c539c2b0f9f736da816422320d6f58e6f414f54e.tar.gz
forums-c539c2b0f9f736da816422320d6f58e6f414f54e.tar.bz2
forums-c539c2b0f9f736da816422320d6f58e6f414f54e.tar.xz
forums-c539c2b0f9f736da816422320d6f58e6f414f54e.zip
Merge remote-tracking branch 'github-igorw/feature/dic' into develop
* github-igorw/feature/dic: (35 commits) [feature/dic] Spaces to tabs, add useless docblocks [feature/dic] Remove unneeded newline [feature/dic] Add a doc block for the prune_forum cron task forum_data [feature/dic] Update composer.lock to symfony/* RC1 [feature/dic] Fix re-ordering of services [feature/dic] Fix parse errors [feature/dic] Add docblock for cron_manager::wrap_task() [feature/dic] Make cron task attributes protected, one per line [feature/dic] Coding style: Braces [feature/dic] Re-order services alphabetically [feature/dic] Remove duplicate event-dispatcher dependency [feature/dic] Adjust installer script to work with partially configured container [feature/dic] Generate full cache driver class name on fresh install [feature/dic] Adjust cache driver class name for BC [feature/dic] Rename {phpEx => php_ext} for consistency [feature/dic] Add trailing newline to htaccess [feature/dic] Require symfony/* 2.1.*, tabs instead of spaces, --dev lock file [feature/dic] Load services from extensions [feature/dic] Introduce DI processors instead of abusing compiler passes [feature/dic] Add dbal_ class prefix to dbal.driver.class ...
Diffstat (limited to 'phpBB/includes/di/processor/config.php')
-rw-r--r--phpBB/includes/di/processor/config.php76
1 files changed, 76 insertions, 0 deletions
diff --git a/phpBB/includes/di/processor/config.php b/phpBB/includes/di/processor/config.php
new file mode 100644
index 0000000000..22b6252a6d
--- /dev/null
+++ b/phpBB/includes/di/processor/config.php
@@ -0,0 +1,76 @@
+<?php
+/**
+*
+* @package phpBB3
+* @copyright (c) 2012 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+/**
+* @ignore
+*/
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+/**
+* Configure the container for phpBB's services though
+* user-defined parameters defined in the config.php file.
+*/
+class phpbb_di_processor_config implements phpbb_di_processor_interface
+{
+ private $config_file;
+ private $phpbb_root_path;
+ private $php_ext;
+
+ /**
+ * Constructor.
+ *
+ * @param string $config_file The config file
+ * @param string $phpbb_root_path The root path
+ * @param string $php_ext The PHP extension
+ */
+ public function __construct($config_file, $phpbb_root_path, $php_ext)
+ {
+ $this->config_file = $config_file;
+ $this->phpbb_root_path = $phpbb_root_path;
+ $this->php_ext = $php_ext;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function process(ContainerBuilder $container)
+ {
+ require $this->config_file;
+
+ $container->setParameter('core.root_path', $this->phpbb_root_path);
+ $container->setParameter('core.php_ext', $this->php_ext);
+
+ $container->setParameter('core.table_prefix', $table_prefix);
+ $container->setParameter('cache.driver.class', $this->fix_acm_type($acm_type));
+ $container->setParameter('dbal.driver.class', 'dbal_'.$dbms);
+ $container->setParameter('dbal.dbhost', $dbhost);
+ $container->setParameter('dbal.dbuser', $dbuser);
+ $container->setParameter('dbal.dbpasswd', $dbpasswd);
+ $container->setParameter('dbal.dbname', $dbname);
+ $container->setParameter('dbal.dbport', $dbport);
+ $container->setParameter('dbal.new_link', defined('PHPBB_DB_NEW_LINK') && PHPBB_DB_NEW_LINK);
+
+ $container->set('container', $container);
+ }
+
+ protected function fix_acm_type($acm_type)
+ {
+ if (preg_match('#^[a-z]+$#', $acm_type))
+ {
+ return 'phpbb_cache_driver_'.$acm_type;
+ }
+
+ return $acm_type;
+ }
+}