Skip to content

Commit 94134c3

Browse files
authored
Mark repository managers private (#1662)
* Mark repository managers private * Type hint against interface * Update PersistenceRepositoryTest * Fixed typo * Update changelog
1 parent 323ec19 commit 94134c3

File tree

9 files changed

+51
-17
lines changed

9 files changed

+51
-17
lines changed

CHANGELOG-6.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,4 @@ in 6.0 versions.
4343
- `POST_PERSIST` => `FOS\ElasticaBundle\Persister\Event\PostPersistEvent`
4444
- `PRE_FETCH_OBJECTS` => `FOS\ElasticaBundle\Persister\Event\PreFetchObjectsEvent`
4545
* **[BC break]** Renamed `FOS\ElasticaBundle\Persister\Event\OnExceptionEvent::setIgnore()` to `FOS\ElasticaBundle\Persister\Event\OnExceptionEvent::setIgnored()`.
46+
* **[BC break]** Marked all `fos_elastica.manager` services as private.

doc/usage.md

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,41 @@ fos_elastica:
115115

116116
An example for using a repository:
117117

118+
```yaml
119+
# config/services.yaml
120+
services:
121+
# ...
122+
123+
App\Controller\UserController:
124+
tags: ['controller.service_arguments']
125+
public: true
126+
arguments:
127+
- '@fos_elastica.manager'
128+
```
129+
118130
```php
119-
/** var FOS\ElasticaBundle\Manager\RepositoryManager */
120-
$repositoryManager = $this->container->get('fos_elastica.manager');
131+
namespace App\Controller;
132+
133+
use FOS\ElasticaBundle\Manager\RepositoryManagerInterface;
134+
135+
class UserController extends Controller
136+
{
137+
/** @var RepositoryManagerInterface */
138+
private $repositoryManager;
139+
140+
public function __construct(RepositoryManagerInterface $repositoryManager)
141+
{
142+
$this->repositoryManager = $repositoryManager;
143+
}
121144
122-
/** var FOS\ElasticaBundle\Repository */
123-
$repository = $repositoryManager->getRepository('UserBundle:User');
145+
public function userAction()
146+
{
147+
$repository = $this->repositoryManager->getRepository('UserBundle:User');
124148
125-
/** var array of Acme\UserBundle\Entity\User */
126-
$users = $repository->find('bob');
149+
/** var array of App\UserBundle\Entity\User */
150+
$users = $repository->find('bob');
151+
}
152+
}
127153
```
128154

129155
For more information about customising repositories, see the cookbook entry
@@ -160,10 +186,10 @@ class UserRepository extends EntityRepository
160186
public function createSearchQueryBuilder($entityAlias)
161187
{
162188
$qb = $this->createQueryBuilder($entityAlias);
163-
189+
164190
$qb->select($entityAlias, 'g')
165191
->innerJoin($entityAlias.'.groups', 'g');
166-
192+
167193
return $qb;
168194
}
169195
}

src/DependencyInjection/FOSElasticaExtension.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -723,9 +723,7 @@ private function createDefaultManagerAlias(string $defaultManager, ContainerBuil
723723
}
724724

725725
$container->setAlias('fos_elastica.manager', sprintf('fos_elastica.manager.%s', $defaultManagerService));
726-
$container->getAlias('fos_elastica.manager')->setPublic(true);
727726
$container->setAlias(RepositoryManagerInterface::class, 'fos_elastica.manager');
728-
$container->getAlias(RepositoryManagerInterface::class)->setPublic(false);
729727
}
730728

731729
/**

src/Resources/config/mongodb.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</call>
3333
</service>
3434

35-
<service id="fos_elastica.manager.mongodb" class="FOS\ElasticaBundle\Doctrine\RepositoryManager" public="true">
35+
<service id="fos_elastica.manager.mongodb" class="FOS\ElasticaBundle\Doctrine\RepositoryManager">
3636
<argument type="service" id="doctrine_mongodb"/>
3737
<argument type="service" id="fos_elastica.repository_manager"/>
3838
</service>

src/Resources/config/orm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</call>
3333
</service>
3434

35-
<service id="fos_elastica.manager.orm" class="FOS\ElasticaBundle\Doctrine\RepositoryManager" public="true">
35+
<service id="fos_elastica.manager.orm" class="FOS\ElasticaBundle\Doctrine\RepositoryManager">
3636
<argument type="service" id="doctrine" />
3737
<argument type="service" id="fos_elastica.repository_manager" />
3838
</service>

src/Resources/config/phpcr.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</call>
3333
</service>
3434

35-
<service id="fos_elastica.manager.phpcr" class="FOS\ElasticaBundle\Doctrine\RepositoryManager" public="true">
35+
<service id="fos_elastica.manager.phpcr" class="FOS\ElasticaBundle\Doctrine\RepositoryManager">
3636
<argument type="service" id="doctrine_phpcr" />
3737
<argument type="service" id="fos_elastica.repository_manager" />
3838
</service>

tests/Functional/PersistenceRepositoryTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,15 @@ class PersistenceRepositoryTest extends WebTestCase
1515
{
1616
public function testRepositoryShouldBeSetCorrectly()
1717
{
18-
static::bootKernel(['test_case' => 'ORM']);
18+
self::bootKernel(['test_case' => 'ORM']);
1919

20-
$repository = static::$kernel->getContainer()->get('fos_elastica.manager.orm')
20+
// returns the real and unchanged service container
21+
$container = self::$kernel->getContainer();
22+
23+
// gets the special container that allows fetching private services
24+
$container = self::$container;
25+
26+
$repository = self::$container->get('test_alias.fos_elastica.manager.orm')
2127
->getRepository(TypeObject::class);
2228

2329
$this->assertInstanceOf(TypeObjectRepository::class, $repository);

tests/Functional/app/ORM/config.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ doctrine:
1010
auto_mapping: false
1111

1212
services:
13+
_defaults:
14+
public: true
1315
test_alias.fos_elastica.indexable:
1416
alias: fos_elastica.indexable
15-
public: true
1617
indexable_service:
1718
class: FOS\ElasticaBundle\Tests\Functional\app\ORM\IndexableService
18-
public: false
19+
test_alias.fos_elastica.manager.orm:
20+
alias: fos_elastica.manager.orm
1921

2022
fos_elastica:
2123
clients:

tests/Functional/app/config/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
framework:
2+
test: true
23
secret: secret
34

45
services:

0 commit comments

Comments
 (0)