Offer the possibility to override internal formatter objects from plugins

This commit is contained in:
Frederic Guillot
2016-12-20 20:06:39 -05:00
parent a957195952
commit ae708a712a
28 changed files with 200 additions and 72 deletions

View File

@@ -62,6 +62,21 @@ use Pimple\Container;
* @property \Kanboard\Decorator\ColumnRestrictionCacheDecorator $columnRestrictionCacheDecorator
* @property \Kanboard\Decorator\ColumnMoveRestrictionCacheDecorator $columnMoveRestrictionCacheDecorator
* @property \Kanboard\Decorator\ProjectRoleRestrictionCacheDecorator $projectRoleRestrictionCacheDecorator
* @property \Kanboard\Formatter\BoardColumnFormatter $boardColumnFormatter
* @property \Kanboard\Formatter\BoardFormatter $boardFormatter
* @property \Kanboard\Formatter\BoardSwimlaneFormatter $boardSwimlaneFormatter
* @property \Kanboard\Formatter\BoardTaskFormatter $boardTaskFormatter
* @property \Kanboard\Formatter\GroupAutoCompleteFormatter $groupAutoCompleteFormatter
* @property \Kanboard\Formatter\ProjectActivityEventFormatter $projectActivityEventFormatter
* @property \Kanboard\Formatter\ProjectGanttFormatter $projectGanttFormatter
* @property \Kanboard\Formatter\SubtaskTimeTrackingCalendarFormatter $subtaskTimeTrackingCalendarFormatter
* @property \Kanboard\Formatter\TaskAutoCompleteFormatter $taskAutoCompleteFormatter
* @property \Kanboard\Formatter\TaskCalendarFormatter $taskCalendarFormatter
* @property \Kanboard\Formatter\TaskGanttFormatter $taskGanttFormatter
* @property \Kanboard\Formatter\TaskICalFormatter $taskICalFormatter
* @property \Kanboard\Formatter\TaskSuggestMenuFormatter $taskSuggestMenuFormatter
* @property \Kanboard\Formatter\UserAutoCompleteFormatter $userAutoCompleteFormatter
* @property \Kanboard\Formatter\UserMentionFormatter $userMentionFormatter
* @property \Kanboard\Model\ActionModel $actionModel
* @property \Kanboard\Model\ActionParameterModel $actionParameterModel
* @property \Kanboard\Model\AvatarFileModel $avatarFileModel

View File

@@ -17,7 +17,7 @@ interface FormatterInterface
*
* @access public
* @param Table $query
* @return FormatterInterface
* @return $this
*/
public function withQuery(Table $query);

View File

@@ -41,7 +41,7 @@ class Tool
}
/**
* Build dependency injection container from an array
* Build dependency injection containers from an array
*
* @static
* @access public
@@ -63,6 +63,29 @@ class Tool
return $container;
}
/**
* Build dependency injection container from an array
*
* @static
* @access public
* @param Container $container
* @param array $namespaces
* @return Container
*/
public static function buildFactories(Container $container, array $namespaces)
{
foreach ($namespaces as $namespace => $classes) {
foreach ($classes as $name) {
$class = '\\Kanboard\\'.$namespace.'\\'.$name;
$container[lcfirst($name)] = $container->factory(function ($c) use ($class) {
return new $class($c);
});
}
}
return $container;
}
/**
* Build dependency injection container for custom helpers from an array
*