| @@ 20-44 (lines=25) @@ | ||
| 17 | use Zend\ServiceManager\FactoryInterface; |
|
| 18 | use Zend\ServiceManager\ServiceLocatorInterface; |
|
| 19 | ||
| 20 | class DoctrineORMStorageFactory implements FactoryInterface |
|
| 21 | { |
|
| 22 | ||
| 23 | /** |
|
| 24 | * Create service |
|
| 25 | * |
|
| 26 | * @param ServiceLocatorInterface $serviceLocator |
|
| 27 | * |
|
| 28 | * @return mixed |
|
| 29 | */ |
|
| 30 | public function createService(ServiceLocatorInterface $serviceLocator) |
|
| 31 | { |
|
| 32 | /** @var EntityManager $em */ |
|
| 33 | $em = $serviceLocator->get('doctrine.entitymanager.orm_default'); |
|
| 34 | ||
| 35 | /** @var array $rolloutConfig */ |
|
| 36 | $rolloutConfig = $serviceLocator->get('zf2_rollout_config'); |
|
| 37 | ||
| 38 | if (!isset($rolloutConfig['doctrine_storage']['class_name'])) { |
|
| 39 | throw new \RuntimeException('No "[ doctrine_storage => class_name => "some_class"]" defined in the rollout configuration!"'); |
|
| 40 | } |
|
| 41 | ||
| 42 | return new DoctrineORMStorage($em, $rolloutConfig['doctrine_storage']['class_name']); |
|
| 43 | } |
|
| 44 | } |
|
| @@ 20-39 (lines=20) @@ | ||
| 17 | use Zend\ServiceManager\FactoryInterface; |
|
| 18 | use Zend\ServiceManager\ServiceLocatorInterface; |
|
| 19 | ||
| 20 | class RolloutZendDbAdapterStorageFactory implements FactoryInterface |
|
| 21 | { |
|
| 22 | ||
| 23 | /** |
|
| 24 | * {@inheritdoc} |
|
| 25 | */ |
|
| 26 | public function createService(ServiceLocatorInterface $serviceLocator) |
|
| 27 | { |
|
| 28 | $rolloutConfig = $serviceLocator->get('zf2_rollout_config'); |
|
| 29 | ||
| 30 | if (!isset($rolloutConfig['zend_db_storage']['table_name'])) { |
|
| 31 | throw new \RuntimeException('Missing table_name config when using zend db storage!'); |
|
| 32 | } |
|
| 33 | ||
| 34 | /** @var Adapter $adapter */ |
|
| 35 | $adapter = $serviceLocator->get('Zend\Db\Adapter\Adapter'); |
|
| 36 | ||
| 37 | return new ZendDbAdapterStorage($adapter, $rolloutConfig['zend_db_storage']['table_name']); |
|
| 38 | } |
|
| 39 | } |
|