Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit ac939ab

Browse files
committed
Updated code for the recent renamings
1 parent 0afcf2a commit ac939ab

File tree

6 files changed

+23
-11
lines changed

6 files changed

+23
-11
lines changed

src/DependencyInjection/CmfResourceExtension.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ public function load(array $configs, ContainerBuilder $container)
4848
$loader->load('twig.xml');
4949
$container->setParameter('cmf_resource.description.enabled_enhancers', $config['description']['enhancers']);
5050

51-
$this->loadRepositories($container, $config['repositories']);
51+
$container->setParameter('cmf_resource.repositories.default_name', $config['default_repository']);
52+
$this->loadRepositories($container, $config['repositories'], $config['default_repository']);
5253
}
5354

54-
private function loadRepositories(ContainerBuilder $container, array $configs)
55+
private function loadRepositories(ContainerBuilder $container, array $configs, $defaultRepositoryName)
5556
{
5657
$repositoryTypes = array_keys($this->repositoryFactories);
5758
$typeMap = [];
@@ -87,6 +88,9 @@ private function loadRepositories(ContainerBuilder $container, array $configs)
8788
$serviceMap[$repositoryName] = $serviceId;
8889

8990
$container->setDefinition($serviceId, $definition);
91+
if ($defaultRepositoryName == $repositoryName) {
92+
$container->setAlias('cmf_resource.repository', $serviceId);
93+
}
9094
}
9195

9296
$registry = $container->getDefinition('cmf_resource.registry');

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public function getConfigTreeBuilder()
100100
->end()
101101
->end()
102102
->end() // repositories
103+
->scalarNode('default_repository')->defaultValue('default')->end()
103104
->end();
104105

105106
return $treeBuilder;

src/Registry/RepositoryRegistry.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@ class RepositoryRegistry implements RepositoryRegistryInterface
2727
private $serviceMap = [];
2828
private $typeMap = [];
2929
private $names = [];
30+
private $defaultRepositoryName;
3031

3132
/**
3233
* @param ContainerInterface $container
3334
* @param array $serviceMap
3435
* @param array $typeMap
36+
* @param string $defaultRepositoryName
3537
*/
3638
public function __construct(
3739
ContainerInterface $container,
3840
array $serviceMap,
39-
array $typeMap
41+
array $typeMap,
42+
$defaultRepositoryName
4043
) {
4144
$this->container = $container;
4245
$this->serviceMap = $serviceMap;
4346
$this->typeMap = $typeMap;
47+
$this->defaultRepositoryName = $defaultRepositoryName;
4448
}
4549

4650
/**
@@ -67,9 +71,9 @@ public function all()
6771
/**
6872
* {@inheritdoc}
6973
*/
70-
public function get($repositoryName)
74+
public function get($repositoryName = null)
7175
{
72-
if (!isset($this->serviceMap[$repositoryName])) {
76+
if (!isset($this->serviceMap[$repositoryName ?: $defaultRepositoryName])) {
7377
throw new \InvalidArgumentException(sprintf(
7478
'Repository "%s" has not been registered, available repositories: "%s".',
7579
$repositoryName,
@@ -86,7 +90,7 @@ public function get($repositoryName)
8690
/**
8791
* {@inheritdoc}
8892
*/
89-
public function getRepositoryAlias(ResourceRepository $repository)
93+
public function getRepositoryName(ResourceRepository $repository)
9094
{
9195
$hash = spl_object_hash($repository);
9296
if (isset($this->names[$hash])) {

src/Resources/config/resource.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<argument type="service" id="service_container"/>
1212
<argument /> <!-- service map -->
1313
<argument /> <!-- type map -->
14+
<argument>%cmf_resource.repositories.default_name%</argument>
1415
</service>
1516

1617
</services>

tests/Unit/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public function assertConfig($source)
7171
],
7272
],
7373
],
74+
'default_repository' => 'default',
7475
], $config);
7576
}
7677
}

tests/Unit/Registry/RepositoryRegistryTest.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function testReturnConfigured()
4141

4242
$repository = $registry->get('test');
4343
$this->assertInstanceOf(ResourceRepository::class, $repository);
44-
$this->assertEquals('test', $registry->getRepositoryAlias($repository));
44+
$this->assertEquals('test', $registry->getRepositoryName($repository));
4545
$this->assertEquals('test/type', $registry->getRepositoryType($repository));
4646
}
4747

@@ -63,17 +63,17 @@ public function testUnknownRepositoryName()
6363
}
6464

6565
/**
66-
* It should throw an exception if an alias is requested for an unknown repository.
66+
* It should throw an exception if an name is requested for an unknown repository.
6767
*
6868
* @expectedException \RuntimeException
6969
* @expectedExceptionMessage I don't know what its name is
7070
*/
71-
public function testGetAliasUnknownRepository()
71+
public function testGetNameUnknownRepository()
7272
{
7373
$registry = $this->createRegistry([]);
7474

7575
$repository = $this->prophesize(ResourceRepository::class);
76-
$registry->getRepositoryAlias($repository->reveal());
76+
$registry->getRepositoryName($repository->reveal());
7777
}
7878

7979
/**
@@ -138,7 +138,8 @@ private function createRegistry(array $serviceMap)
138138
return new RepositoryRegistry(
139139
$this->container,
140140
$serviceMap,
141-
$typeMap
141+
$typeMap,
142+
'default'
142143
);
143144
}
144145
}

0 commit comments

Comments
 (0)