mirror of
				https://github.com/alchemy-fr/Phraseanet.git
				synced 2025-10-27 11:53:12 +00:00 
			
		
		
		
	 1e18b3e69f
			
		
	
	1e18b3e69f
	
	
	
		
			
			- Squashed Pull request #1730 - Squashed Pull request #1741 - Squashed Pull request #1742 - Squash merge branch 4.0 - Squashed Pull request #1744 - Squashed Pull request #1746 - Squashed merge branch 4.0 - Squashed merge branch 4.0 - Squashed merge branch 4.0 - Squashed merge branch 4.0 - Squashed Pull request #1758 - Avoid using imagine/imagine alias as it is causing install issues - Squashed merge branch 4.0 - Squashed Pull request #1763 - Squashed merge branch 4.0 - Squash of 6 commits - Squashed merge branch 4.0 - This is a combination of 2 commits. - Squashed Pull request #1775 - Squashed Pull request #1777 - Squashed Pull request #1779 - Squashed Pull request #1780 - Squashed Pull request #1782 - Adds a Pull request template - Squased Pull request #1783 - Squash Pull request #1786 - Squashed Pull request #1796 - Squashed merge branch 4.0 - Squash Pull request #1791 - Squashed merge branch 4.0 - Squashed Pull request #1808 - Squashed Pull request #1811 - Squashed Pull request #1809
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * This file is part of Phraseanet
 | |
|  *
 | |
|  * (c) 2005-2016 Alchemy
 | |
|  *
 | |
|  * For the full copyright and license information, please view the LICENSE
 | |
|  * file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| namespace Alchemy\Phrasea\Databox\Subdef;
 | |
| 
 | |
| use Alchemy\Phrasea\Databox\DataboxBoundRepositoryFactory;
 | |
| use Alchemy\Phrasea\Databox\DataboxConnectionProvider;
 | |
| use Doctrine\Common\Cache\Cache;
 | |
| 
 | |
| class MediaSubdefRepositoryFactory implements DataboxBoundRepositoryFactory
 | |
| {
 | |
|     /**
 | |
|      * @var DataboxConnectionProvider
 | |
|      */
 | |
|     private $connectionProvider;
 | |
| 
 | |
|     /**
 | |
|      * @var Cache
 | |
|      */
 | |
|     private $cache;
 | |
| 
 | |
|     /**
 | |
|      * @var callable
 | |
|      */
 | |
|     private $mediaSubdefFactoryProvider;
 | |
| 
 | |
|     public function __construct(DataboxConnectionProvider $connectionProvider, Cache $cache, callable $mediaSubdefFactoryProvider)
 | |
|     {
 | |
|         $this->connectionProvider = $connectionProvider;
 | |
|         $this->cache = $cache;
 | |
|         $this->mediaSubdefFactoryProvider = $mediaSubdefFactoryProvider;
 | |
|     }
 | |
| 
 | |
|     public function createRepositoryFor($databoxId)
 | |
|     {
 | |
|         $connection = $this->connectionProvider->getConnection($databoxId);
 | |
| 
 | |
|         $dbalRepository = new DbalMediaSubdefDataRepository($connection);
 | |
|         $dataRepository = new CachedMediaSubdefDataRepository($dbalRepository, $this->cache, sprintf('databox%d:', $databoxId));
 | |
| 
 | |
|         $provider = $this->mediaSubdefFactoryProvider;
 | |
|         $factory = $provider($databoxId);
 | |
| 
 | |
|         if (!is_callable($factory)) {
 | |
|             throw new \UnexpectedValueException(sprintf(
 | |
|                 'Media subdef factory is expected to be callable, got %s',
 | |
|                 is_object($factory) ? get_class($factory) : gettype($factory)
 | |
|             ));
 | |
|         }
 | |
| 
 | |
|         return new MediaSubdefRepository($dataRepository, $factory);
 | |
|     }
 | |
| }
 |