diff --git a/phpBB/bin/phpbbcli.php b/phpBB/bin/phpbbcli.php index 177ecaacbf..c44890b69d 100755 --- a/phpBB/bin/phpbbcli.php +++ b/phpBB/bin/phpbbcli.php @@ -90,6 +90,6 @@ $user->data['user_id'] = ANONYMOUS; $user->ip = '127.0.0.1'; $application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $language, $config); -$application->setDispatcher($phpbb_container->get('dispatcher')); +$application->setDispatcher($phpbb_container->get('event_dispatcher')); $application->register_container_commands($phpbb_container->get('console.command_collection')); $application->run($input); diff --git a/phpBB/config/default/container/services.yml b/phpBB/config/default/container/services.yml index aa997b8360..59d52073f9 100644 --- a/phpBB/config/default/container/services.yml +++ b/phpBB/config/default/container/services.yml @@ -46,7 +46,7 @@ services: - '@cache.driver' - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '%core.root_path%' - '%core.php_ext%' @@ -97,7 +97,7 @@ services: - '@config' - '@cron.manager' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@request' - '@routing.helper' @@ -132,7 +132,7 @@ services: - '@cache' - '@config' - '@language' - - '@dispatcher' + - '@event_dispatcher' - '@path_helper' - '@user' @@ -142,7 +142,7 @@ services: - '@dbal.conn' - '@user' - '@auth' - - '@dispatcher' + - '@event_dispatcher' - '%core.root_path%' - '%core.adm_relative_path%' - '%core.php_ext%' diff --git a/phpBB/config/default/container/services_attachment.yml b/phpBB/config/default/container/services_attachment.yml index c54b847685..48a8c409af 100644 --- a/phpBB/config/default/container/services_attachment.yml +++ b/phpBB/config/default/container/services_attachment.yml @@ -5,7 +5,7 @@ services: arguments: - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@attachment.resync' - '@storage.attachment' @@ -32,7 +32,7 @@ services: - '@config' - '@files.upload' - '@language' - - '@dispatcher' + - '@event_dispatcher' - '@plupload' - '@storage.attachment' - '@filesystem.temp' diff --git a/phpBB/config/default/container/services_auth.yml b/phpBB/config/default/container/services_auth.yml index 6c9d224ad2..2276f4a4f3 100644 --- a/phpBB/config/default/container/services_auth.yml +++ b/phpBB/config/default/container/services_auth.yml @@ -52,7 +52,7 @@ services: - '@config' - '@dbal.conn' - '@auth.provider.db' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@request' - '@auth.provider.oauth.service_collection' diff --git a/phpBB/config/default/container/services_avatar.yml b/phpBB/config/default/container/services_avatar.yml index cec4dc771f..e8048278c7 100644 --- a/phpBB/config/default/container/services_avatar.yml +++ b/phpBB/config/default/container/services_avatar.yml @@ -3,14 +3,14 @@ services: class: phpbb\avatar\manager arguments: - '@config' - - '@dispatcher' + - '@event_dispatcher' - '@avatar.driver_collection' avatar.helper: class: phpbb\avatar\helper arguments: - '@config' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@avatar.manager' - '@path_helper' @@ -61,7 +61,7 @@ services: - '%core.php_ext%' - '@storage.avatar' - '@path_helper' - - '@dispatcher' + - '@event_dispatcher' - '@files.factory' - '@php_ini' calls: diff --git a/phpBB/config/default/container/services_content.yml b/phpBB/config/default/container/services_content.yml index f26c970021..d290974ff7 100644 --- a/phpBB/config/default/container/services_content.yml +++ b/phpBB/config/default/container/services_content.yml @@ -4,7 +4,7 @@ services: arguments: - '@auth' - '@config' - - '@dispatcher' + - '@event_dispatcher' - '@dbal.conn' - '@user' - '%core.root_path%' @@ -33,7 +33,7 @@ services: - '@config_text' - '@dbal.conn' - '@user' - - '@dispatcher' + - '@event_dispatcher' - '%core.root_path%' - '%core.php_ext%' @@ -63,7 +63,7 @@ services: - '@template' - '@user' - '@controller.helper' - - '@dispatcher' + - '@event_dispatcher' viewonline_helper: class: phpbb\viewonline_helper diff --git a/phpBB/config/default/container/services_event.yml b/phpBB/config/default/container/services_event.yml index 5696275e64..ed488cd56f 100644 --- a/phpBB/config/default/container/services_event.yml +++ b/phpBB/config/default/container/services_event.yml @@ -1,5 +1,5 @@ services: - dispatcher: + event_dispatcher: class: phpbb\event\dispatcher arguments: - '@service_container' diff --git a/phpBB/config/default/container/services_feed.yml b/phpBB/config/default/container/services_feed.yml index f32d0cb4d3..80caf546df 100644 --- a/phpBB/config/default/container/services_feed.yml +++ b/phpBB/config/default/container/services_feed.yml @@ -11,7 +11,7 @@ services: - '@feed.helper' - '@user' - '@auth' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '%core.php_ext%' @@ -36,7 +36,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.forums: @@ -50,7 +50,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.news: @@ -64,7 +64,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.overall: @@ -78,7 +78,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.quote_helper: @@ -96,7 +96,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.topics: @@ -110,7 +110,7 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' feed.topics_active: @@ -124,5 +124,5 @@ services: - '@user' - '@auth' - '@content.visibility' - - '@dispatcher' + - '@event_dispatcher' - '%core.php_ext%' diff --git a/phpBB/config/default/container/services_help.yml b/phpBB/config/default/container/services_help.yml index 1bff001523..87be25fbe5 100644 --- a/phpBB/config/default/container/services_help.yml +++ b/phpBB/config/default/container/services_help.yml @@ -2,7 +2,7 @@ services: phpbb.help.manager: class: phpbb\help\manager arguments: - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@template' diff --git a/phpBB/config/default/container/services_http.yml b/phpBB/config/default/container/services_http.yml index 49cfbf5b84..6e19a83397 100644 --- a/phpBB/config/default/container/services_http.yml +++ b/phpBB/config/default/container/services_http.yml @@ -2,7 +2,7 @@ services: http_kernel: class: Symfony\Component\HttpKernel\HttpKernel arguments: - - '@dispatcher' + - '@event_dispatcher' - '@controller.resolver' - '@request_stack' diff --git a/phpBB/config/default/container/services_notification.yml b/phpBB/config/default/container/services_notification.yml index 65552b1e13..a037ad7352 100644 --- a/phpBB/config/default/container/services_notification.yml +++ b/phpBB/config/default/container/services_notification.yml @@ -6,7 +6,7 @@ services: - '@notification.method_collection' - '@service_container' - '@user_loader' - - '@dispatcher' + - '@event_dispatcher' - '@dbal.conn' - '@cache' - '@language' diff --git a/phpBB/config/default/container/services_profilefield.yml b/phpBB/config/default/container/services_profilefield.yml index aca8b65db6..7a0bbf43bd 100644 --- a/phpBB/config/default/container/services_profilefield.yml +++ b/phpBB/config/default/container/services_profilefield.yml @@ -6,7 +6,7 @@ services: - '@config_text' - '@dbal.conn' - '@dbal.tools' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@log' - '@template' diff --git a/phpBB/config/default/container/services_report.yml b/phpBB/config/default/container/services_report.yml index 2c5b3bf3d5..0ccfd9cde2 100644 --- a/phpBB/config/default/container/services_report.yml +++ b/phpBB/config/default/container/services_report.yml @@ -35,7 +35,7 @@ services: shared: false arguments: - '@dbal.conn.driver' - - '@dispatcher' + - '@event_dispatcher' - '@config' - '@auth' - '@user' @@ -46,7 +46,7 @@ services: shared: false arguments: - '@dbal.conn.driver' - - '@dispatcher' + - '@event_dispatcher' - '@config' - '@auth' - '@user' diff --git a/phpBB/config/default/container/services_search.yml b/phpBB/config/default/container/services_search.yml index fceb254eaa..812e41a1f2 100644 --- a/phpBB/config/default/container/services_search.yml +++ b/phpBB/config/default/container/services_search.yml @@ -12,7 +12,7 @@ services: arguments: - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@user' - '%tables.search_results%' @@ -26,7 +26,7 @@ services: arguments: - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@user' - '%tables.search_results%' @@ -42,7 +42,7 @@ services: arguments: - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@user' - '%tables.search_results%' @@ -58,7 +58,7 @@ services: - '@config' - '@dbal.conn' - '@dbal.tools' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@log' - '@user' diff --git a/phpBB/config/default/container/services_storage.yml b/phpBB/config/default/container/services_storage.yml index c9caab3f84..4ef28ccf3b 100644 --- a/phpBB/config/default/container/services_storage.yml +++ b/phpBB/config/default/container/services_storage.yml @@ -101,7 +101,7 @@ services: - '@config' - '@content.visibility' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@language' - '@request' - '@storage.attachment' diff --git a/phpBB/config/default/container/services_text_formatter.yml b/phpBB/config/default/container/services_text_formatter.yml index 3d44e87948..182a2afa46 100644 --- a/phpBB/config/default/container/services_text_formatter.yml +++ b/phpBB/config/default/container/services_text_formatter.yml @@ -41,7 +41,7 @@ services: arguments: - '@text_formatter.data_access' - '@cache.driver' - - '@dispatcher' + - '@event_dispatcher' - '@config' - '@text_formatter.s9e.link_helper' - '@log' @@ -67,7 +67,7 @@ services: - '@cache.driver' - '%text_formatter.cache.parser.key%' - '@text_formatter.s9e.factory' - - '@dispatcher' + - '@event_dispatcher' text_formatter.s9e.quote_helper: class: phpbb\textformatter\s9e\quote_helper @@ -83,7 +83,7 @@ services: - '%text_formatter.cache.dir%' - '%text_formatter.cache.renderer.key%' - '@text_formatter.s9e.factory' - - '@dispatcher' + - '@event_dispatcher' calls: - [configure_mention_helper, ['@text_formatter.s9e.mention_helper']] - [configure_quote_helper, ['@text_formatter.s9e.quote_helper']] diff --git a/phpBB/config/default/container/services_twig.yml b/phpBB/config/default/container/services_twig.yml index 8700630a73..7c4e114e8e 100644 --- a/phpBB/config/default/container/services_twig.yml +++ b/phpBB/config/default/container/services_twig.yml @@ -11,7 +11,7 @@ services: - '%core.template.cache_path%' - '@ext.manager' - '@template.twig.loader' - - '@dispatcher' + - '@event_dispatcher' - [] calls: - [setLexer, ['@template.twig.lexer']] diff --git a/phpBB/config/default/container/services_ucp.yml b/phpBB/config/default/container/services_ucp.yml index 861fa4ac75..69ef5ffbf8 100644 --- a/phpBB/config/default/container/services_ucp.yml +++ b/phpBB/config/default/container/services_ucp.yml @@ -4,7 +4,7 @@ services: arguments: - '@config' - '@dbal.conn' - - '@dispatcher' + - '@event_dispatcher' - '@controller.helper' - '@language' - '@log' diff --git a/phpBB/config/default/container/services_user.yml b/phpBB/config/default/container/services_user.yml index 154e9aebf6..f73333c912 100644 --- a/phpBB/config/default/container/services_user.yml +++ b/phpBB/config/default/container/services_user.yml @@ -2,7 +2,7 @@ services: acl.permissions: class: phpbb\permissions arguments: - - '@dispatcher' + - '@event_dispatcher' - '@user' user: diff --git a/phpBB/includes/compatibility_globals.php b/phpBB/includes/compatibility_globals.php index 223c8a0120..df152c81ab 100644 --- a/phpBB/includes/compatibility_globals.php +++ b/phpBB/includes/compatibility_globals.php @@ -45,7 +45,7 @@ function register_compatibility_globals() // Instantiate some basic classes /* @var $phpbb_dispatcher \phpbb\event\dispatcher */ - $phpbb_dispatcher = $phpbb_container->get('dispatcher'); + $phpbb_dispatcher = $phpbb_container->get('event_dispatcher'); /* @var $request \phpbb\request\request_interface */ $request = $phpbb_container->get('request'); diff --git a/phpBB/install/app.php b/phpBB/install/app.php index 0cb2ead92a..33114eff58 100644 --- a/phpBB/install/app.php +++ b/phpBB/install/app.php @@ -47,7 +47,7 @@ $template->set_custom_style(array( ), $paths); /** @var $phpbb_dispatcher \phpbb\event\dispatcher */ -$phpbb_dispatcher = $phpbb_installer_container->get('dispatcher'); +$phpbb_dispatcher = $phpbb_installer_container->get('event_dispatcher'); /** @var \phpbb\language\language $language */ $language = $phpbb_installer_container->get('language'); diff --git a/phpBB/install/phpbbcli.php b/phpBB/install/phpbbcli.php index a90762ec85..c13efb604b 100755 --- a/phpBB/install/phpbbcli.php +++ b/phpBB/install/phpbbcli.php @@ -50,6 +50,6 @@ $language = $phpbb_installer_container->get('language'); $language->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting', 'cli')); $application = new \phpbb\console\application('phpBB Installer', PHPBB_VERSION, $language, $config); -$application->setDispatcher($phpbb_installer_container->get('dispatcher')); +$application->setDispatcher($phpbb_installer_container->get('event_dispatcher')); $application->register_container_commands($phpbb_installer_container->get('console.installer.command_collection')); $application->run($input); diff --git a/phpBB/phpbb/db/migrator.php b/phpBB/phpbb/db/migrator.php index 972c2d5107..95bc88423e 100644 --- a/phpBB/phpbb/db/migrator.php +++ b/phpBB/phpbb/db/migrator.php @@ -261,9 +261,9 @@ class migrator */ public function update() { - $this->container->get('dispatcher')->disable(); + $this->container->get('event_dispatcher')->disable(); $this->update_do(); - $this->container->get('dispatcher')->enable(); + $this->container->get('event_dispatcher')->enable(); } /** @@ -509,9 +509,9 @@ class migrator */ public function revert($migration) { - $this->container->get('dispatcher')->disable(); + $this->container->get('event_dispatcher')->disable(); $this->revert_do($migration); - $this->container->get('dispatcher')->enable(); + $this->container->get('event_dispatcher')->enable(); } /** diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php index 935aa11efb..4dc91b7409 100644 --- a/phpBB/phpbb/di/container_builder.php +++ b/phpBB/phpbb/di/container_builder.php @@ -205,11 +205,11 @@ class container_builder // Mark all services public $this->container->addCompilerPass(new pass\markpublic_pass()); - // Event listeners "phpBB style" - $this->container->addCompilerPass(new RegisterListenersPass('dispatcher', 'event.listener_listener', 'event.listener')); + // Convert old event dispatcher syntax + $this->container->addCompilerPass(new pass\convert_events()); - // Event listeners "Symfony style" - $this->container->addCompilerPass(new RegisterListenersPass('dispatcher')); + // Event listeners + $this->container->addCompilerPass(new RegisterListenersPass()); if ($this->use_extensions) { diff --git a/phpBB/phpbb/di/pass/convert_events.php b/phpBB/phpbb/di/pass/convert_events.php new file mode 100644 index 0000000000..6fc2db1417 --- /dev/null +++ b/phpBB/phpbb/di/pass/convert_events.php @@ -0,0 +1,51 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\di\pass; + +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; + +/** + * Converts event types to Symfony ones + */ +class convert_events implements CompilerPassInterface +{ + /** @var string[] Map for conversions of types */ + private static array $conversions = [ + 'event.listener_listener' => 'kernel.event_listener', + 'event.listener' => 'kernel.event_subscriber', + ]; + + /** + * Modify the container before it is passed to the rest of the code + * Add Symfony event tags to previously used phpBB ones + * + * @param ContainerBuilder $container ContainerBuilder object + * @return void + */ + public function process(ContainerBuilder $container): void + { + // Add alias for event dispatcher + $container->addAliases(['dispatcher' => 'event_dispatcher']); + + foreach (self::$conversions as $from => $to) + { + foreach ($container->findTaggedServiceIds($from, true) as $id => $tags) + { + $definition = $container->getDefinition($id); + $definition->addTag($to); + } + } + } +} diff --git a/phpBB/phpbb/install/module/install_data/task/create_search_index.php b/phpBB/phpbb/install/module/install_data/task/create_search_index.php index 9f80e5e784..e5781b34b3 100644 --- a/phpBB/phpbb/install/module/install_data/task/create_search_index.php +++ b/phpBB/phpbb/install/module/install_data/task/create_search_index.php @@ -120,7 +120,7 @@ class create_search_index extends database_task $this->db = $container->get('dbal.conn'); $this->iohandler = $iohandler; $this->installer_config = $config; - $this->phpbb_dispatcher = $container->get('dispatcher'); + $this->phpbb_dispatcher = $container->get('event_dispatcher'); $this->user = $container->get('user'); $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php index 67185b9362..976d76a0e6 100644 --- a/tests/dbal/migrator_test.php +++ b/tests/dbal/migrator_test.php @@ -80,7 +80,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case new \phpbb\db\migration\helper() ); $container->set('migrator', $this->migrator); - $container->set('dispatcher', new phpbb_mock_event_dispatcher()); + $container->set('event_dispatcher', new phpbb_mock_event_dispatcher()); $this->extension_manager = new \phpbb\extension\manager( $container, diff --git a/tests/notification/base.php b/tests/notification/base.php index ec1f6e065b..545508eedd 100644 --- a/tests/notification/base.php +++ b/tests/notification/base.php @@ -117,7 +117,7 @@ abstract class phpbb_tests_notification_base extends phpbb_database_test_case $phpEx ) ); - $phpbb_container->set('dispatcher', $this->phpbb_dispatcher); + $phpbb_container->set('event_dispatcher', $this->phpbb_dispatcher); $phpbb_container->setParameter('core.root_path', $phpbb_root_path); $phpbb_container->setParameter('core.php_ext', $phpEx); $phpbb_container->setParameter('tables.notifications', 'phpbb_notifications'); diff --git a/tests/notification/notification_method_email_test.php b/tests/notification/notification_method_email_test.php index 12cd802cbd..d9b52cae2d 100644 --- a/tests/notification/notification_method_email_test.php +++ b/tests/notification/notification_method_email_test.php @@ -84,7 +84,7 @@ class notification_method_email_test extends phpbb_tests_notification_base $phpbb_container->set('cache.driver', $cache_driver); $phpbb_container->set('cache', $cache); $phpbb_container->set('text_formatter.utils', new \phpbb\textformatter\s9e\utils()); - $phpbb_container->set('dispatcher', $this->phpbb_dispatcher); + $phpbb_container->set('event_dispatcher', $this->phpbb_dispatcher); $phpbb_container->setParameter('core.root_path', $phpbb_root_path); $phpbb_container->setParameter('core.php_ext', $phpEx); $phpbb_container->setParameter('tables.notifications', 'phpbb_notifications'); diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php index db3ad6bd34..fb87dde787 100644 --- a/tests/notification/submit_post_base.php +++ b/tests/notification/submit_post_base.php @@ -146,7 +146,7 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c $phpEx ) ); - $phpbb_container->set('dispatcher', $phpbb_dispatcher); + $phpbb_container->set('event_dispatcher', $phpbb_dispatcher); $phpbb_container->set('storage.attachment', $storage); $phpbb_container->setParameter('core.root_path', $phpbb_root_path); $phpbb_container->setParameter('core.php_ext', $phpEx); diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index 7755ce286e..e21258256c 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -286,7 +286,7 @@ class phpbb_functional_test_case extends phpbb_test_case ); $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); $container->set('migrator', $migrator); - $container->set('dispatcher', $phpbb_dispatcher); + $container->set('event_dispatcher', $phpbb_dispatcher); $cache = $this->getMockBuilder('\phpbb\cache\service') ->setConstructorArgs([$this->get_cache_driver(), $config, $this->db, $phpbb_dispatcher, $phpbb_root_path, $phpEx]) ->setMethods(['deferred_purge']) diff --git a/tests/test_framework/phpbb_test_case_helpers.php b/tests/test_framework/phpbb_test_case_helpers.php index c1ab852753..bed719c6bb 100644 --- a/tests/test_framework/phpbb_test_case_helpers.php +++ b/tests/test_framework/phpbb_test_case_helpers.php @@ -503,9 +503,9 @@ class phpbb_test_case_helpers } // Create an event dispatcher - if ($container->has('dispatcher')) + if ($container->has('event_dispatcher')) { - $dispatcher = $container->get('dispatcher'); + $dispatcher = $container->get('event_dispatcher'); } else if (isset($phpbb_dispatcher)) {