Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita776ffd

Browse files
feature#42925 [DoctrineBridge] Remove DoctrineTestHelper and TestRepositoryFactory (derrabus)
This PR was merged into the 6.0 branch.Discussion----------[DoctrineBridge] Remove DoctrineTestHelper and TestRepositoryFactory| Q | A| ------------- | ---| Branch? | 6.0| Bug fix? | no| New feature? | yes| Deprecations? | no| Tickets | Follows#39696| License | MIT| Doc PR | N/ACommits-------71e8815 [DoctrineBridge] Remove DoctrineTestHelper and TestRepositoryFactory
2 parents096fc6a +71e8815 commita776ffd

File tree

5 files changed

+106
-179
lines changed

5 files changed

+106
-179
lines changed

‎src/Symfony/Bridge/Doctrine/CHANGELOG.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
6.0
5+
---
6+
7+
* Remove`DoctrineTestHelper` and`TestRepositoryFactory`
8+
49
5.3
510
---
611

‎src/Symfony/Bridge/Doctrine/Test/DoctrineTestHelper.php‎

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

‎src/Symfony/Bridge/Doctrine/Test/TestRepositoryFactory.php‎

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

‎src/Symfony/Bridge/Doctrine/Tests/DoctrineTestHelper.php‎

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,74 @@
1111

1212
namespaceSymfony\Bridge\Doctrine\Tests;
1313

14-
useSymfony\Bridge\Doctrine\Test\DoctrineTestHelperasTestDoctrineTestHelper;
14+
useDoctrine\Common\Annotations\AnnotationReader;
15+
useDoctrine\ORM\Configuration;
16+
useDoctrine\ORM\EntityManager;
17+
useDoctrine\ORM\Mapping\Driver\AnnotationDriver;
18+
useDoctrine\ORM\Mapping\Driver\XmlDriver;
19+
useDoctrine\Persistence\Mapping\Driver\MappingDriverChain;
20+
useDoctrine\Persistence\Mapping\Driver\SymfonyFileLocator;
21+
usePHPUnit\Framework\TestCase;
1522

1623
/**
1724
* Provides utility functions needed in tests.
1825
*
1926
* @author Bernhard Schussek <bschussek@gmail.com>
2027
*/
21-
finalclass DoctrineTestHelperextends TestDoctrineTestHelper
28+
finalclass DoctrineTestHelper
2229
{
30+
/**
31+
* Returns an entity manager for testing.
32+
*/
33+
publicstaticfunctioncreateTestEntityManager(Configuration$config =null):EntityManager
34+
{
35+
if (!\extension_loaded('pdo_sqlite')) {
36+
TestCase::markTestSkipped('Extension pdo_sqlite is required.');
37+
}
38+
39+
$params = [
40+
'driver' =>'pdo_sqlite',
41+
'memory' =>true,
42+
];
43+
44+
return EntityManager::create($params,$config ??self::createTestConfiguration());
45+
}
46+
47+
publicstaticfunctioncreateTestConfiguration():Configuration
48+
{
49+
$config =newConfiguration();
50+
$config->setEntityNamespaces(['SymfonyTestsDoctrine' =>'Symfony\Bridge\Doctrine\Tests\Fixtures']);
51+
$config->setAutoGenerateProxyClasses(true);
52+
$config->setProxyDir(sys_get_temp_dir());
53+
$config->setProxyNamespace('SymfonyTests\Doctrine');
54+
$config->setMetadataDriverImpl(newAnnotationDriver(newAnnotationReader()));
55+
56+
return$config;
57+
}
58+
59+
publicstaticfunctioncreateTestConfigurationWithXmlLoader():Configuration
60+
{
61+
$config =self::createTestConfiguration();
62+
63+
$driverChain =newMappingDriverChain();
64+
$driverChain->addDriver(
65+
newXmlDriver(
66+
newSymfonyFileLocator(
67+
[__DIR__.'/../Tests/Resources/orm' =>'Symfony\\Bridge\\Doctrine\\Tests\\Fixtures'],'.orm.xml'
68+
)
69+
),
70+
'Symfony\\Bridge\\Doctrine\\Tests\\Fixtures'
71+
);
72+
73+
$config->setMetadataDriverImpl($driverChain);
74+
75+
return$config;
76+
}
77+
78+
/**
79+
* This class cannot be instantiated.
80+
*/
81+
privatefunction__construct()
82+
{
83+
}
2384
}

‎src/Symfony/Bridge/Doctrine/Tests/TestRepositoryFactory.php‎

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,47 @@
1111

1212
namespaceSymfony\Bridge\Doctrine\Tests;
1313

14-
useSymfony\Bridge\Doctrine\Test\TestRepositoryFactoryasTestTestRepositoryFactory;
14+
useDoctrine\ORM\EntityManagerInterface;
15+
useDoctrine\ORM\Repository\RepositoryFactory;
16+
useDoctrine\Persistence\ObjectRepository;
1517

1618
/**
1719
* @author Andreas Braun <alcaeus@alcaeus.org>
1820
*/
19-
finalclass TestRepositoryFactoryextends TestTestRepositoryFactory
21+
finalclass TestRepositoryFactoryimplements RepositoryFactory
2022
{
23+
/**
24+
* @var array<string, ObjectRepository>
25+
*/
26+
privatearray$repositoryList = [];
27+
28+
/**
29+
* {@inheritdoc}
30+
*/
31+
publicfunctiongetRepository(EntityManagerInterface$entityManager,$entityName):ObjectRepository
32+
{
33+
$repositoryHash =$this->getRepositoryHash($entityManager,$entityName);
34+
35+
return$this->repositoryList[$repositoryHash] ??=$this->createRepository($entityManager,$entityName);
36+
}
37+
38+
publicfunctionsetRepository(EntityManagerInterface$entityManager,string$entityName,ObjectRepository$repository):void
39+
{
40+
$repositoryHash =$this->getRepositoryHash($entityManager,$entityName);
41+
42+
$this->repositoryList[$repositoryHash] =$repository;
43+
}
44+
45+
privatefunctioncreateRepository(EntityManagerInterface$entityManager,string$entityName):ObjectRepository
46+
{
47+
$metadata =$entityManager->getClassMetadata($entityName);
48+
$repositoryClassName =$metadata->customRepositoryClassName ?:$entityManager->getConfiguration()->getDefaultRepositoryClassName();
49+
50+
returnnew$repositoryClassName($entityManager,$metadata);
51+
}
52+
53+
privatefunctiongetRepositoryHash(EntityManagerInterface$entityManager,string$entityName):string
54+
{
55+
return$entityManager->getClassMetadata($entityName)->getName().spl_object_hash($entityManager);
56+
}
2157
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp