Skip to content

Commit 119face

Browse files
davidbenatespina
authored andcommitted
Load entity repository from AdminController with the repository_service_id
1 parent 474ab34 commit 119face

8 files changed

Lines changed: 14 additions & 104 deletions

File tree

src/LIN3S/AdminBundle/Configuration/Factory/EntityConfigurationFactory.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use LIN3S\AdminBundle\Configuration\Model\ListField;
1717
use LIN3S\AdminBundle\Configuration\Model\ListFilter;
1818
use LIN3S\AdminBundle\Registry\ServiceRegistry;
19+
use LIN3S\AdminBundle\Repository\AdminRepository;
1920
use LIN3S\AdminBundle\Repository\AdminRepositoryFactory;
2021

2122
final class EntityConfigurationFactory
@@ -24,20 +25,17 @@ final class EntityConfigurationFactory
2425
private $actions;
2526
private $listFields;
2627
private $listFilters;
27-
private $repositoryFactory;
2828

2929
public function __construct(
3030
$config,
3131
ServiceRegistry $actions,
3232
ServiceRegistry $listFields,
33-
ServiceRegistry $listFilters,
34-
AdminRepositoryFactory $repositoryFactory
33+
ServiceRegistry $listFilters
3534
) {
3635
$this->config = $config['entities'];
3736
$this->actions = $actions;
3837
$this->listFields = $listFields;
3938
$this->listFilters = $listFilters;
40-
$this->repositoryFactory = $repositoryFactory;
4139
}
4240

4341
public function createFor($entity)
@@ -52,7 +50,7 @@ public function createFor($entity)
5250
$this->listFieldsForEntity($entity),
5351
$this->listFiltersForEntity($entity),
5452
$entityConfig['list']['global_actions'],
55-
$this->repositoryFactory->build($entityConfig['persistence_strategy']),
53+
$entityConfig['repository_service_id'],
5654
$entityConfig['name'],
5755
$entityConfig['list']['amount_per_page'],
5856
$entityConfig['list']['order_by']

src/LIN3S/AdminBundle/Configuration/Model/Entity.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ final class Entity
2828
private $listGlobalActions;
2929
private $listOrderByDefault;
3030
private $printNames;
31-
private $repository;
31+
private $repositoryServiceId;
3232

3333
public function __construct(
3434
$name,
@@ -38,7 +38,7 @@ public function __construct(
3838
array $listFields = [],
3939
array $listFilters = [],
4040
array $listGlobalActions = [],
41-
AdminRepository $repository,
41+
$repositoryServiceId,
4242
array $printNames,
4343
$listEntitiesPerPage,
4444
array $listOrderByDefault = []
@@ -51,7 +51,7 @@ public function __construct(
5151
$this->actions = $actions;
5252
$this->listActions = $listActions;
5353
$this->listGlobalActions = $listGlobalActions;
54-
$this->repository = $repository;
54+
$this->repositoryServiceId = $repositoryServiceId;
5555
$this->printNames = $printNames;
5656
$this->listEntitiesPerPage = $listEntitiesPerPage;
5757
$this->listOrderByDefault = $listOrderByDefault;
@@ -282,12 +282,12 @@ public function printNames()
282282
}
283283

284284
/**
285-
* Gets the query builder.
285+
* Gets the repository service id.
286286
*
287-
* @return AdminRepository
287+
* @return string
288288
*/
289-
public function repository()
289+
public function repositoryServiceId()
290290
{
291-
return $this->repository;
291+
return $this->repositoryServiceId;
292292
}
293293
}

src/LIN3S/AdminBundle/Controller/AdminController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class AdminController extends Controller
3232
public function listAction($entity, Request $request)
3333
{
3434
$entityConfig = $this->get('lin3s_admin.configuration.factory.entity')->createFor($entity);
35-
$repository = $entityConfig->repository();
35+
$repository = $this->get($entityConfig->repositoryServiceId());
3636
$entities = $repository->findByRequest($request, $entityConfig);
3737
$totalCount = $repository->countAll($request, $entityConfig);
3838

@@ -58,7 +58,7 @@ public function customAction($entity, $action, $id = null, Request $request)
5858
$entityConfig = $this->get('lin3s_admin.configuration.factory.entity')->createFor($entity);
5959
$entityObject = null;
6060
if ($id) {
61-
$entityObject = $entityConfig->repository()->find($entityConfig, $id);
61+
$entityObject = $this->get($entityConfig->repositoryServiceId())->find($entityConfig, $id);
6262
}
6363
if ($id && !$entityObject) {
6464
throw $this->createNotFoundException(

src/LIN3S/AdminBundle/DependencyInjection/Configuration.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public function getConfigTreeBuilder()
3232
->arrayNode('entities')->requiresAtLeastOneElement()
3333
->prototype('array')
3434
->children()
35-
->scalarNode('persistence_strategy')
36-
->defaultValue('doctrine')
35+
->scalarNode('repository_service_id')
36+
->defaultValue('lin3s_admin.doctrine_repository')
3737
->end()
3838
->arrayNode('name')
3939
->children()

src/LIN3S/AdminBundle/Repository/AdminRepositoryFactory.php

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/LIN3S/AdminBundle/Repository/PdoAdminRepository.php

Lines changed: 0 additions & 41 deletions
This file was deleted.

src/LIN3S/AdminBundle/Resources/config/services.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ services:
2222
- '@lin3s_admin.action.registry'
2323
- '@lin3s_admin.list_field_type.registry'
2424
- '@lin3s_admin.list_filter_type.registry'
25-
- '@lin3s_admin.repository_factory'
2625

2726
lin3s_admin.form.handler:
2827
class: LIN3S\AdminBundle\Form\FormHandler

src/LIN3S/AdminBundle/Resources/config/services/repository.yml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,3 @@ services:
1515
class: LIN3S\AdminBundle\Repository\DoctrineAdminRepository
1616
arguments:
1717
- '@doctrine.orm.entity_manager'
18-
19-
lin3s_admin.pdo_repository:
20-
class: LIN3S\AdminBundle\Repository\PdoAdminRepository
21-
arguments:
22-
- '@lin3s_admin.pdo'
23-
24-
lin3s_admin.repository_factory:
25-
class: LIN3S\AdminBundle\Repository\AdminRepositoryFactory
26-
arguments:
27-
-
28-
pdo: '@lin3s_admin.pdo_repository'
29-
doctrine: '@lin3s_admin.doctrine_repository'

0 commit comments

Comments
 (0)