1<?php
2
3namespace Kanboard\ServiceProvider;
4
5use Kanboard\Subscriber\LdapUserPhotoSubscriber;
6use Pimple\Container;
7use Pimple\ServiceProviderInterface;
8use Symfony\Component\EventDispatcher\EventDispatcher;
9use Kanboard\Subscriber\AuthSubscriber;
10use Kanboard\Subscriber\BootstrapSubscriber;
11use Kanboard\Subscriber\NotificationSubscriber;
12use Kanboard\Subscriber\ProjectDailySummarySubscriber;
13use Kanboard\Subscriber\ProjectModificationDateSubscriber;
14use Kanboard\Subscriber\TransitionSubscriber;
15use Kanboard\Subscriber\RecurringTaskSubscriber;
16
17/**
18 * Class EventDispatcherProvider
19 *
20 * @package Kanboard\ServiceProvider
21 * @author  Frederic Guillot
22 */
23class EventDispatcherProvider implements ServiceProviderInterface
24{
25    public function register(Container $container)
26    {
27        $container['dispatcher'] = new EventDispatcher;
28        $container['dispatcher']->addSubscriber(new BootstrapSubscriber($container));
29        $container['dispatcher']->addSubscriber(new AuthSubscriber($container));
30        $container['dispatcher']->addSubscriber(new ProjectDailySummarySubscriber($container));
31        $container['dispatcher']->addSubscriber(new ProjectModificationDateSubscriber($container));
32        $container['dispatcher']->addSubscriber(new NotificationSubscriber($container));
33        $container['dispatcher']->addSubscriber(new TransitionSubscriber($container));
34        $container['dispatcher']->addSubscriber(new RecurringTaskSubscriber($container));
35
36        if (LDAP_AUTH && LDAP_USER_ATTRIBUTE_PHOTO !== '') {
37            $container['dispatcher']->addSubscriber(new LdapUserPhotoSubscriber($container));
38        }
39
40        return $container;
41    }
42}
43