array( 'Acl', 'Action', 'Authentication', 'Board', 'Category', 'Color', 'Comment', 'Config', 'Currency', 'CustomFilter', 'File', 'LastLogin', 'Link', 'OverdueNotification', 'Project', 'ProjectActivity', 'ProjectAnalytic', 'ProjectDuplication', 'ProjectDailyColumnStats', 'ProjectDailyStats', 'ProjectIntegration', 'ProjectPermission', 'ProjectNotification', 'Subtask', 'SubtaskExport', 'SubtaskTimeTracking', 'Swimlane', 'Task', 'TaskAnalytic', 'TaskCreation', 'TaskDuplication', 'TaskExport', 'TaskFinder', 'TaskFilter', 'TaskLink', 'TaskModification', 'TaskPermission', 'TaskPosition', 'TaskStatus', 'TaskValidator', 'TaskImport', 'Transition', 'User', 'UserImport', 'UserSession', 'UserNotification', 'UserNotificationType', 'UserNotificationFilter', 'UserUnreadNotification', ), 'Formatter' => array( 'TaskFilterGanttFormatter', 'TaskFilterAutoCompleteFormatter', 'TaskFilterCalendarFormatter', 'TaskFilterICalendarFormatter', 'ProjectGanttFormatter', ), 'Core' => array( 'DateParser', 'Helper', 'HttpClient', 'Lexer', 'Request', 'Router', 'Session', 'Template', ), 'Core\Cache' => array( 'MemoryCache', ), 'Core\Plugin' => array( 'Hook', ), 'Integration' => array( 'BitbucketWebhook', 'GithubWebhook', 'GitlabWebhook', 'HipchatWebhook', 'Jabber', 'SlackWebhook', ) ); public function register(Container $container) { Tool::buildDIC($container, $this->classes); $container['paginator'] = $container->factory(function ($c) { return new Paginator($c); }); $container['oauth'] = $container->factory(function ($c) { return new OAuth2($c); }); $container['htmlConverter'] = function () { return new HtmlConverter(array('strip_tags' => true)); }; $container['objectStorage'] = function () { return new FileStorage(FILES_DIR); }; $container['emailClient'] = function ($container) { $mailer = new EmailClient($container); $mailer->setTransport('smtp', '\Kanboard\Core\Mail\Transport\Smtp'); $mailer->setTransport('sendmail', '\Kanboard\Core\Mail\Transport\Sendmail'); $mailer->setTransport('mail', '\Kanboard\Core\Mail\Transport\Mail'); return $mailer; }; $container['userNotificationType'] = function ($container) { $type = new UserNotificationType($container); $type->setType('email', t('Email'), '\Kanboard\Notification\Mail'); $type->setType('web', t('Web'), '\Kanboard\Notification\Web'); return $type; }; $container['projectNotificationType'] = function ($container) { $type = new ProjectNotificationType($container); $type->setType('webhook', 'Webhook', '\Kanboard\Notification\Webhook', true); $type->setType('activity_stream', 'ActivityStream', '\Kanboard\Notification\ActivityStream', true); return $type; }; $container['pluginLoader'] = new Loader($container); $container['cspRules'] = array('style-src' => "'self' 'unsafe-inline'", 'img-src' => '* data:'); } }