mirror of
https://github.com/phpbb/phpbb.git
synced 2025-03-13 20:28:44 +01:00
[feature/dic] Convert common.php to Symfony2 DependencyInjection component
PHPBB3-10739
This commit is contained in:
parent
7e2f16aafa
commit
8e2cbe39cd
@ -15,6 +15,9 @@ if (!defined('IN_PHPBB'))
|
||||
exit;
|
||||
}
|
||||
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
|
||||
require($phpbb_root_path . 'includes/startup.' . $phpEx);
|
||||
@ -91,43 +94,41 @@ $phpbb_class_loader_ext->register();
|
||||
$phpbb_class_loader = new phpbb_class_loader('phpbb_', $phpbb_root_path . 'includes/', ".$phpEx");
|
||||
$phpbb_class_loader->register();
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/config'));
|
||||
$loader->load('parameters.yml');
|
||||
$loader->load('services.yml');
|
||||
|
||||
$container->setParameter('core.root_path', $phpbb_root_path);
|
||||
$container->setParameter('core.php_ext', $phpEx);
|
||||
|
||||
// set up caching
|
||||
$cache_factory = new phpbb_cache_factory($acm_type);
|
||||
$cache = $cache_factory->get_service();
|
||||
$cache = $container->get('cache');
|
||||
$phpbb_class_loader_ext->set_cache($cache->get_driver());
|
||||
$phpbb_class_loader->set_cache($cache->get_driver());
|
||||
|
||||
// Instantiate some basic classes
|
||||
$phpbb_dispatcher = new phpbb_event_dispatcher();
|
||||
$request = new phpbb_request();
|
||||
$user = new phpbb_user();
|
||||
$auth = new phpbb_auth();
|
||||
$db = new $sql_db();
|
||||
$phpbb_dispatcher = $container->get('dispatcher');
|
||||
$request = $container->get('request');
|
||||
$user = $container->get('user');
|
||||
$auth = $container->get('auth');
|
||||
$db = $container->get('dbal.conn');
|
||||
|
||||
// make sure request_var uses this request instance
|
||||
request_var('', 0, false, false, $request); // "dependency injection" for a function
|
||||
|
||||
// Connect to DB
|
||||
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
|
||||
|
||||
// We do not need this any longer, unset for safety purposes
|
||||
unset($dbpasswd);
|
||||
|
||||
// Grab global variables, re-cache if necessary
|
||||
$config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE);
|
||||
$config = $container->get('config');
|
||||
set_config(null, null, null, $config);
|
||||
set_config_count(null, null, null, $config);
|
||||
|
||||
// load extensions
|
||||
$phpbb_extension_manager = new phpbb_extension_manager($db, EXT_TABLE, $phpbb_root_path, ".$phpEx", $cache->get_driver());
|
||||
$phpbb_extension_manager = $container->get('ext.manager');
|
||||
|
||||
// Initialize style
|
||||
$phpbb_style_resource_locator = new phpbb_style_resource_locator();
|
||||
$phpbb_style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider());
|
||||
$template = new phpbb_style_template($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, $phpbb_style_path_provider);
|
||||
$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, $phpbb_style_path_provider, $template);
|
||||
$template = $container->get('template');
|
||||
$style = $container->get('style');
|
||||
|
||||
$phpbb_subscriber_loader = new phpbb_event_extension_subscriber_loader($phpbb_dispatcher, $phpbb_extension_manager);
|
||||
$phpbb_subscriber_loader = $container->get('event.subscriber_loader');
|
||||
$phpbb_subscriber_loader->load();
|
||||
|
||||
// Add own hook handler
|
||||
|
@ -1,5 +1,8 @@
|
||||
{
|
||||
"require": {
|
||||
"symfony/event-dispatcher": "2.0.*"
|
||||
"symfony/config": "2.0.*",
|
||||
"symfony/dependency-injection": "2.0.*",
|
||||
"symfony/event-dispatcher": "2.0.*",
|
||||
"symfony/yaml": "2.0.*"
|
||||
}
|
||||
}
|
||||
|
16
phpBB/composer.lock
generated
16
phpBB/composer.lock
generated
@ -1,9 +1,21 @@
|
||||
{
|
||||
"hash": "9bada3748ec2933fe0864dcfafbcd671",
|
||||
"hash": "b1e9c3bcfcee0c5630742abb3e49685f",
|
||||
"packages": [
|
||||
{
|
||||
"package": "symfony/config",
|
||||
"version": "v2.0.12"
|
||||
},
|
||||
{
|
||||
"package": "symfony/dependency-injection",
|
||||
"version": "v2.0.12"
|
||||
},
|
||||
{
|
||||
"package": "symfony/event-dispatcher",
|
||||
"version": "v2.0.10"
|
||||
"version": "v2.0.12"
|
||||
},
|
||||
{
|
||||
"package": "symfony/yaml",
|
||||
"version": "v2.0.12"
|
||||
}
|
||||
],
|
||||
"aliases": []
|
||||
|
11
phpBB/config/parameters.yml
Normal file
11
phpBB/config/parameters.yml
Normal file
@ -0,0 +1,11 @@
|
||||
parameters:
|
||||
cache.acm_type: file
|
||||
dbal.driver: dbal_mysqli
|
||||
dbal.dbhost:
|
||||
dbal.dbuser: root
|
||||
dbal.dbpasswd:
|
||||
dbal.dbname: phpbb_dev
|
||||
dbal.dbport:
|
||||
dbal.new_link: false
|
||||
tables.config: phpbb_config
|
||||
tables.ext: phpbb_ext
|
87
phpBB/config/services.yml
Normal file
87
phpBB/config/services.yml
Normal file
@ -0,0 +1,87 @@
|
||||
services:
|
||||
cache_factory:
|
||||
class: phpbb_cache_factory
|
||||
arguments:
|
||||
- %cache.acm_type%
|
||||
|
||||
cache:
|
||||
class: phpbb_cache_service
|
||||
factory_service: cache_factory
|
||||
factory_method: get_service
|
||||
|
||||
cache.driver:
|
||||
class: phpbb_cache_driver_interface
|
||||
factory_service: cache
|
||||
factory_method: get_driver
|
||||
|
||||
dispatcher:
|
||||
class: phpbb_event_dispatcher
|
||||
|
||||
request:
|
||||
class: phpbb_request
|
||||
|
||||
user:
|
||||
class: phpbb_user
|
||||
|
||||
auth:
|
||||
class: phpbb_auth
|
||||
|
||||
dbal.conn:
|
||||
class: %dbal.driver%
|
||||
calls:
|
||||
- [sql_connect, [%dbal.dbhost%, %dbal.dbuser%, %dbal.dbpasswd%, %dbal.dbname%, %dbal.dbport%, false, %dbal.new_link%]]
|
||||
|
||||
config:
|
||||
class: phpbb_config_db
|
||||
arguments:
|
||||
- @dbal.conn
|
||||
- @cache.driver
|
||||
- %tables.config%
|
||||
|
||||
ext.manager:
|
||||
class: phpbb_extension_manager
|
||||
arguments:
|
||||
- @dbal.conn
|
||||
- %tables.ext%
|
||||
- %core.root_path%
|
||||
- .%core.php_ext%
|
||||
- @cache.driver
|
||||
|
||||
style.resource_locator:
|
||||
class: phpbb_style_resource_locator
|
||||
|
||||
style.path_provider_ext:
|
||||
class: phpbb_style_extension_path_provider
|
||||
arguments:
|
||||
- @ext.manager
|
||||
- @style.path_provider
|
||||
|
||||
style.path_provider:
|
||||
class: phpbb_style_path_provider
|
||||
|
||||
template:
|
||||
class: phpbb_style_template
|
||||
arguments:
|
||||
- %core.root_path%
|
||||
- %core.php_ext%
|
||||
- @config
|
||||
- @user
|
||||
- @style.resource_locator
|
||||
- @style.path_provider_ext
|
||||
|
||||
style:
|
||||
class: phpbb_style
|
||||
arguments:
|
||||
- %core.root_path%
|
||||
- %core.php_ext%
|
||||
- @config
|
||||
- @user
|
||||
- @style.resource_locator
|
||||
- @style.path_provider_ext
|
||||
- @template
|
||||
|
||||
event.subscriber_loader:
|
||||
class: phpbb_event_extension_subscriber_loader
|
||||
arguments:
|
||||
- @dispatcher
|
||||
- @ext.manager
|
Loading…
x
Reference in New Issue
Block a user