diff options
author | Nils Adermann <naderman@naderman.de> | 2012-09-01 19:21:24 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2012-09-01 19:21:24 +0200 |
commit | c539c2b0f9f736da816422320d6f58e6f414f54e (patch) | |
tree | 668e2e5658a1c7dac452e49081665d1bf7a86a39 /phpBB/includes/di/processor/config.php | |
parent | 66b60ddba848593c2e644d7784a3bde9872b2a24 (diff) | |
parent | 282a80077d4630ba59043fffe59e8a7ce8619ecb (diff) | |
download | forums-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.php | 76 |
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; + } +} |