aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2013-11-13 08:45:48 -0800
committerNils Adermann <naderman@naderman.de>2013-11-13 08:45:48 -0800
commite48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2 (patch)
treed96f99dacd067c1b65fef41c194c62ec9dde479a /phpBB
parent37f73f86e2c332fdaa89a6fe015e45f65c068a6f (diff)
parentfbf5911ac54c83d439121e90032afca0ec2a7fc4 (diff)
downloadforums-e48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2.tar
forums-e48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2.tar.gz
forums-e48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2.tar.bz2
forums-e48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2.tar.xz
forums-e48b2c07ebe95aaff93eed6c7df5dff5d6c50fe2.zip
Merge pull request #1871 from nickvergessen/ticket/12016
Ticket/12016 Event listeners should be services
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/config/services.yml9
-rw-r--r--phpBB/phpbb/event/extension_subscriber_loader.php20
2 files changed, 16 insertions, 13 deletions
diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml
index f61ed5f87f..4280f90375 100644
--- a/phpBB/config/services.yml
+++ b/phpBB/config/services.yml
@@ -141,10 +141,17 @@ services:
class: phpbb\event\extension_subscriber_loader
arguments:
- @dispatcher
- - @ext.manager
+ - @event.listener_collection
calls:
- [load, []]
+ event.listener_collection:
+ class: phpbb\di\service_collection
+ arguments:
+ - @service_container
+ tags:
+ - { name: service_collection, tag: event.listener }
+
ext.manager:
class: phpbb\extension\manager
arguments:
diff --git a/phpBB/phpbb/event/extension_subscriber_loader.php b/phpBB/phpbb/event/extension_subscriber_loader.php
index df8e093f4a..6408f93e2a 100644
--- a/phpBB/phpbb/event/extension_subscriber_loader.php
+++ b/phpBB/phpbb/event/extension_subscriber_loader.php
@@ -14,26 +14,22 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class extension_subscriber_loader
{
private $dispatcher;
- private $extension_manager;
+ private $listener_collection;
- public function __construct(EventDispatcherInterface $dispatcher, \phpbb\extension\manager $extension_manager)
+ public function __construct(EventDispatcherInterface $dispatcher, \phpbb\di\service_collection $listener_collection)
{
$this->dispatcher = $dispatcher;
- $this->extension_manager = $extension_manager;
+ $this->listener_collection = $listener_collection;
}
public function load()
{
- $finder = $this->extension_manager->get_finder();
- $subscriber_classes = $finder
- ->extension_directory('/event')
- ->core_path('event/')
- ->get_classes();
-
- foreach ($subscriber_classes as $class)
+ if (!empty($this->listener_collection))
{
- $subscriber = new $class();
- $this->dispatcher->addSubscriber($subscriber);
+ foreach ($this->listener_collection as $listener)
+ {
+ $this->dispatcher->addSubscriber($listener);
+ }
}
}
}