summaryrefslogtreecommitdiff
path: root/app/ServiceProvider/ClassProvider.php
blob: 02e5004e03ce4cf82338b83949ff4ff7aa348939 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php

namespace ServiceProvider;

use Model\Config;
use Model\Project;
use Model\Webhook;
use Pimple\Container;
use Pimple\ServiceProviderInterface;

class ClassProvider implements ServiceProviderInterface
{
    private $classes = array(
        'Model' => array(
            'Acl',
            'Action',
            'Authentication',
            'Board',
            'Category',
            'Color',
            'Comment',
            'Config',
            'DateParser',
            'File',
            'GithubWebhook',
            'LastLogin',
            'Notification',
            'Project',
            'ProjectActivity',
            'ProjectAnalytics',
            'ProjectDailySummary',
            'ProjectPaginator',
            'ProjectPermission',
            'SubTask',
            'SubtaskPaginator',
            'Swimlane',
            'Task',
            'TaskCreation',
            'TaskDuplication',
            'TaskExport',
            'TaskFinder',
            'TaskModification',
            'TaskPaginator',
            'TaskPermission',
            'TaskPosition',
            'TaskStatus',
            'TaskValidator',
            'TimeTracking',
            'User',
            'Webhook',
        ),
        'Core' => array(
            'Template',
            'Session',
        ),
    );

    public function register(Container $container)
    {
        foreach ($this->classes as $namespace => $classes) {

            foreach ($classes as $name) {

                $class = '\\'.$namespace.'\\'.$name;

                $container[lcfirst($name)] = function ($c) use ($class) {
                    return new $class($c);
                };
            }
        }
    }
}