| <?php |
|
|
| namespace Kanboard\ServiceProvider; |
|
|
| use Kanboard\Core\Cache\FileCache; |
| use Kanboard\Core\Cache\MemoryCache; |
| use Kanboard\Decorator\ColumnMoveRestrictionCacheDecorator; |
| use Kanboard\Decorator\ColumnRestrictionCacheDecorator; |
| use Kanboard\Decorator\MetadataCacheDecorator; |
| use Kanboard\Decorator\ProjectRoleRestrictionCacheDecorator; |
| use Kanboard\Decorator\UserCacheDecorator; |
| use Pimple\Container; |
| use Pimple\ServiceProviderInterface; |
|
|
| |
| |
| |
| |
| |
| |
| class CacheProvider implements ServiceProviderInterface |
| { |
| |
| |
| |
| |
| |
| |
| |
| public function register(Container $container) |
| { |
| $container['memoryCache'] = function() { |
| return new MemoryCache(); |
| }; |
|
|
| if (CACHE_DRIVER === 'file') { |
| $container['cacheDriver'] = function() { |
| return new FileCache(); |
| }; |
| } else { |
| $container['cacheDriver'] = $container['memoryCache']; |
| } |
|
|
| $container['userCacheDecorator'] = function($c) { |
| return new UserCacheDecorator( |
| $c['memoryCache'], |
| $c['userModel'] |
| ); |
| }; |
|
|
| $container['userMetadataCacheDecorator'] = function($c) { |
| return new MetadataCacheDecorator( |
| $c['cacheDriver'], |
| $c['userMetadataModel'], |
| 'user.metadata.', |
| $c['userSession']->getId() |
| ); |
| }; |
|
|
| $container['columnMoveRestrictionCacheDecorator'] = function($c) { |
| return new ColumnMoveRestrictionCacheDecorator( |
| $c['memoryCache'], |
| $c['columnMoveRestrictionModel'] |
| ); |
| }; |
|
|
| $container['columnRestrictionCacheDecorator'] = function($c) { |
| return new ColumnRestrictionCacheDecorator( |
| $c['memoryCache'], |
| $c['columnRestrictionModel'] |
| ); |
| }; |
|
|
| $container['projectRoleRestrictionCacheDecorator'] = function($c) { |
| return new ProjectRoleRestrictionCacheDecorator( |
| $c['memoryCache'], |
| $c['projectRoleRestrictionModel'] |
| ); |
| }; |
|
|
| return $container; |
| } |
| } |
|
|