diff options
Diffstat (limited to 'app/ServiceProvider/ClassProvider.php')
-rw-r--r-- | app/ServiceProvider/ClassProvider.php | 107 |
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); + }); + } +} |