2012-01-07 20:53:04 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @package phpBB3
|
2012-03-30 14:22:20 +02:00
|
|
|
* @copyright (c) 2012 phpBB Group
|
2012-01-07 20:53:04 +01:00
|
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @ignore
|
|
|
|
*/
|
|
|
|
if (!defined('IN_PHPBB'))
|
|
|
|
{
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
2012-03-21 13:09:39 +01:00
|
|
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
2012-03-11 15:14:13 +01:00
|
|
|
|
2012-01-07 20:53:04 +01:00
|
|
|
class phpbb_event_extension_subscriber_loader
|
|
|
|
{
|
|
|
|
private $dispatcher;
|
|
|
|
private $extension_manager;
|
|
|
|
|
2012-03-21 13:09:39 +01:00
|
|
|
public function __construct(EventDispatcherInterface $dispatcher, phpbb_extension_manager $extension_manager)
|
2012-01-07 20:53:04 +01:00
|
|
|
{
|
|
|
|
$this->dispatcher = $dispatcher;
|
|
|
|
$this->extension_manager = $extension_manager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function load()
|
|
|
|
{
|
|
|
|
$finder = $this->extension_manager->get_finder();
|
|
|
|
$subscriber_classes = $finder
|
|
|
|
->extension_directory('/event')
|
2012-03-18 23:12:17 +01:00
|
|
|
->suffix('listener')
|
2012-01-07 20:53:04 +01:00
|
|
|
->core_path('event/')
|
|
|
|
->get_classes();
|
|
|
|
|
2012-03-29 21:29:56 +02:00
|
|
|
foreach ($subscriber_classes as $class)
|
|
|
|
{
|
2012-01-07 20:53:04 +01:00
|
|
|
$subscriber = new $class();
|
2012-03-11 15:14:13 +01:00
|
|
|
$this->dispatcher->addSubscriber($subscriber);
|
2012-01-07 20:53:04 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|