summaryrefslogtreecommitdiff
path: root/app/ServiceProvider/ClassProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/ServiceProvider/ClassProvider.php')
-rw-r--r--app/ServiceProvider/ClassProvider.php107
1 files changed, 107 insertions, 0 deletions
diff --git a/app/ServiceProvider/ClassProvider.php b/app/ServiceProvider/ClassProvider.php
new file mode 100644
index 00000000..28884b5a
--- /dev/null
+++ b/app/ServiceProvider/ClassProvider.php
@@ -0,0 +1,107 @@
+<?php
+
+namespace ServiceProvider;
+
+use Core\Paginator;
+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',
+ 'Budget',
+ 'Category',
+ 'Color',
+ 'Comment',
+ 'Config',
+ 'Currency',
+ 'DateParser',
+ 'File',
+ 'HourlyRate',
+ 'LastLogin',
+ 'Link',
+ 'Notification',
+ 'Project',
+ 'ProjectActivity',
+ 'ProjectAnalytic',
+ 'ProjectDuplication',
+ 'ProjectDailySummary',
+ 'ProjectIntegration',
+ 'ProjectPermission',
+ 'Subtask',
+ 'SubtaskExport',
+ 'SubtaskForecast',
+ 'SubtaskTimeTracking',
+ 'Swimlane',
+ 'Task',
+ 'TaskCreation',
+ 'TaskDuplication',
+ 'TaskExport',
+ 'TaskFinder',
+ 'TaskFilter',
+ 'TaskLink',
+ 'TaskModification',
+ 'TaskPermission',
+ 'TaskPosition',
+ 'TaskStatus',
+ 'TaskValidator',
+ 'Timetable',
+ 'TimetableDay',
+ 'TimetableExtra',
+ 'TimetableWeek',
+ 'TimetableOff',
+ 'Transition',
+ 'User',
+ 'UserSession',
+ 'Webhook',
+ ),
+ 'Core' => array(
+ 'EmailClient',
+ 'Helper',
+ 'HttpClient',
+ 'MemoryCache',
+ 'Request',
+ 'Session',
+ 'Template',
+ ),
+ 'Integration' => array(
+ 'BitbucketWebhook',
+ 'GithubWebhook',
+ 'GitlabWebhook',
+ 'HipchatWebhook',
+ 'Jabber',
+ 'Mailgun',
+ 'Postmark',
+ 'SendgridWebhook',
+ 'SlackWebhook',
+ 'Smtp',
+ )
+ );
+
+ 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);
+ };
+ }
+ }
+
+ $container['paginator'] = $container->factory(function ($c) {
+ return new Paginator($c);
+ });
+ }
+}