From b528aa964b5965d958f0f533df2ed611520dad5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Tue, 31 Dec 2019 00:10:05 +0100 Subject: [PATCH 1/2] Address deprecations from persistence A backwards-compatibility layer has been added to persistence to help consumers move to the new namespacing. It is based on class aliases, which means the type declaration changes should not be a BC-break: types are the same. See doctrine/persistence#71 This means: - using the new namespaces - adding autoload calls for new types to types that may be extended and use persistence types in type declarations of non-constructor methods, so that signature compatibility is recognized by old versions of php. More details on this at https://dev.to/greg0ire/how-to-deprecate-a-type-in-php-48cf --- README.md | 10 +++++----- composer.json | 3 ++- .../Common/DataFixtures/Executor/AbstractExecutor.php | 5 ++++- lib/Doctrine/Common/DataFixtures/FixtureInterface.php | 5 ++++- .../Common/DataFixtures/ReferenceRepository.php | 2 +- .../Tests/Common/DataFixtures/DependentFixtureTest.php | 2 +- .../Doctrine/Tests/Common/DataFixtures/FixtureTest.php | 2 +- .../Tests/Common/DataFixtures/OrderedFixtureTest.php | 2 +- .../Common/DataFixtures/ReferenceRepositoryTest.php | 2 +- .../Common/DataFixtures/TestFixtures/MyFixture1.php | 2 +- .../Common/DataFixtures/TestFixtures/MyFixture2.php | 2 +- .../Common/DataFixtures/TestFixtures/RoleFixture.php | 2 +- .../Common/DataFixtures/TestFixtures/UserFixture.php | 2 +- 13 files changed, 24 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index cabb7e23..fed461dd 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ by implementing the [`Doctrine\Common\DataFixtures\FixtureInterface`](lib/Doctri ```php namespace MyDataFixtures; -use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\DataFixtures\FixtureInterface; +use Doctrine\Persistence\ObjectManager; class UserFixtureLoader implements FixtureInterface { @@ -82,7 +82,7 @@ a relation. Here is an example fixtures for **Role** and **User** relation namespace MyDataFixtures; use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class UserRoleDataLoader extends AbstractFixture { @@ -110,7 +110,7 @@ And the **User** data loading fixture: namespace MyDataFixtures; use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class UserDataLoader extends AbstractFixture { @@ -145,7 +145,7 @@ namespace MyDataFixtures; use Doctrine\Common\DataFixtures\AbstractFixture; use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class MyFixture extends AbstractFixture implements OrderedFixtureInterface { @@ -168,7 +168,7 @@ namespace MyDataFixtures; use Doctrine\Common\DataFixtures\AbstractFixture; use Doctrine\Common\DataFixtures\DependentFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class MyFixture extends AbstractFixture implements DependentFixtureInterface { diff --git a/composer.json b/composer.json index cebc0a9b..43f19f12 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,8 @@ ], "require": { "php": "^7.2", - "doctrine/common": "^2.11" + "doctrine/common": "^2.11", + "doctrine/persistence": "^1.3.3" }, "conflict": { "doctrine/phpcr-odm": "<1.3.0" diff --git a/lib/Doctrine/Common/DataFixtures/Executor/AbstractExecutor.php b/lib/Doctrine/Common/DataFixtures/Executor/AbstractExecutor.php index c9001b51..0af62ecc 100644 --- a/lib/Doctrine/Common/DataFixtures/Executor/AbstractExecutor.php +++ b/lib/Doctrine/Common/DataFixtures/Executor/AbstractExecutor.php @@ -9,9 +9,10 @@ use Doctrine\Common\DataFixtures\Purger\PurgerInterface; use Doctrine\Common\DataFixtures\ReferenceRepository; use Doctrine\Common\DataFixtures\SharedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; use Exception; use function get_class; +use function interface_exists; use function sprintf; /** @@ -139,3 +140,5 @@ public function purge() */ abstract public function execute(array $fixtures, $append = false); } + +interface_exists(ObjectManager::class); diff --git a/lib/Doctrine/Common/DataFixtures/FixtureInterface.php b/lib/Doctrine/Common/DataFixtures/FixtureInterface.php index 3cc3fc79..fb713847 100644 --- a/lib/Doctrine/Common/DataFixtures/FixtureInterface.php +++ b/lib/Doctrine/Common/DataFixtures/FixtureInterface.php @@ -4,7 +4,8 @@ namespace Doctrine\Common\DataFixtures; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; +use function interface_exists; /** * Interface contract for fixture classes to implement. @@ -16,3 +17,5 @@ interface FixtureInterface */ public function load(ObjectManager $manager); } + +interface_exists(ObjectManager::class); diff --git a/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php b/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php index 7663ec52..b10eef7e 100644 --- a/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php +++ b/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php @@ -5,8 +5,8 @@ namespace Doctrine\Common\DataFixtures; use BadMethodCallException; -use Doctrine\Common\Persistence\ObjectManager; use Doctrine\ODM\PHPCR\DocumentManager as PhpcrDocumentManager; +use Doctrine\Persistence\ObjectManager; use OutOfBoundsException; use function array_key_exists; use function array_keys; diff --git a/tests/Doctrine/Tests/Common/DataFixtures/DependentFixtureTest.php b/tests/Doctrine/Tests/Common/DataFixtures/DependentFixtureTest.php index af08d402..25089179 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/DependentFixtureTest.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/DependentFixtureTest.php @@ -9,7 +9,7 @@ use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\DataFixtures\Loader; use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; use InvalidArgumentException; use RuntimeException; use function array_search; diff --git a/tests/Doctrine/Tests/Common/DataFixtures/FixtureTest.php b/tests/Doctrine/Tests/Common/DataFixtures/FixtureTest.php index b8a19b1d..06fb79ac 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/FixtureTest.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/FixtureTest.php @@ -5,7 +5,7 @@ namespace Doctrine\Tests\Common\DataFixtures; use Doctrine\Common\DataFixtures\FixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; /** * Test Fixture interface. diff --git a/tests/Doctrine/Tests/Common/DataFixtures/OrderedFixtureTest.php b/tests/Doctrine/Tests/Common/DataFixtures/OrderedFixtureTest.php index 7bfba466..52ce18bc 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/OrderedFixtureTest.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/OrderedFixtureTest.php @@ -7,7 +7,7 @@ use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\DataFixtures\Loader; use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; /** * Test Fixture ordering. diff --git a/tests/Doctrine/Tests/Common/DataFixtures/ReferenceRepositoryTest.php b/tests/Doctrine/Tests/Common/DataFixtures/ReferenceRepositoryTest.php index 97ea6cd6..63286ff0 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/ReferenceRepositoryTest.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/ReferenceRepositoryTest.php @@ -7,11 +7,11 @@ use BadMethodCallException; use Doctrine\Common\DataFixtures\Event\Listener\ORMReferenceListener; use Doctrine\Common\DataFixtures\ReferenceRepository; -use Doctrine\Common\Persistence\Mapping\ClassMetadata; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Proxy\Proxy; use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\UnitOfWork; +use Doctrine\Persistence\Mapping\ClassMetadata; use Doctrine\Tests\Common\DataFixtures\TestEntity\Role; use OutOfBoundsException; use Prophecy\Prophecy\ProphecyInterface; diff --git a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture1.php b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture1.php index bfa5be68..1137723e 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture1.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture1.php @@ -5,7 +5,7 @@ namespace TestFixtures; use Doctrine\Common\DataFixtures\FixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class MyFixture1 implements FixtureInterface { diff --git a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture2.php b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture2.php index 802f7d07..fc4c9aa5 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture2.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/MyFixture2.php @@ -5,7 +5,7 @@ namespace TestFixtures; use Doctrine\Common\DataFixtures\FixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; class MyFixture2 implements FixtureInterface { diff --git a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/RoleFixture.php b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/RoleFixture.php index f996ec92..8864e4de 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/RoleFixture.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/RoleFixture.php @@ -6,7 +6,7 @@ use Doctrine\Common\DataFixtures\ReferenceRepository; use Doctrine\Common\DataFixtures\SharedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; use Doctrine\Tests\Common\DataFixtures\TestEntity\Role; class RoleFixture implements SharedFixtureInterface diff --git a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/UserFixture.php b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/UserFixture.php index 2209a965..8e23a0ca 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/UserFixture.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/TestFixtures/UserFixture.php @@ -5,7 +5,7 @@ namespace Doctrine\Tests\Common\DataFixtures\TestFixtures; use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Persistence\ObjectManager; use Doctrine\Tests\Common\DataFixtures\TestEntity\User; class UserFixture extends AbstractFixture From b7532e4e4b993fd344a9d1c5bd5e91ee2ba1f80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Tue, 31 Dec 2019 07:39:54 +0100 Subject: [PATCH 2/2] Expect a table name that uses schema emulation We use SQLite in tests, and that platform does not support schemas. --- composer.json | 2 +- .../Doctrine/Tests/Common/DataFixtures/Purger/ORMPurgerTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 43f19f12..028ff8f2 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "doctrine/coding-standard": "^6.0", "doctrine/dbal": "^2.5.4", "doctrine/mongodb-odm": "^1.3.0", - "doctrine/orm": "^2.5.4", + "doctrine/orm": "^2.7.0", "phpunit/phpunit": "^7.0" }, "suggest": { diff --git a/tests/Doctrine/Tests/Common/DataFixtures/Purger/ORMPurgerTest.php b/tests/Doctrine/Tests/Common/DataFixtures/Purger/ORMPurgerTest.php index eb40e9e7..29b407af 100644 --- a/tests/Doctrine/Tests/Common/DataFixtures/Purger/ORMPurgerTest.php +++ b/tests/Doctrine/Tests/Common/DataFixtures/Purger/ORMPurgerTest.php @@ -26,7 +26,7 @@ public function testGetAssociationTables() $method = $class->getMethod('getAssociationTables'); $method->setAccessible(true); $associationTables = $method->invokeArgs($purger, [[$metadata], $platform]); - $this->assertEquals($associationTables[0], 'readers.author_reader'); + $this->assertEquals($associationTables[0], 'readers__author_reader'); } public function testGetAssociationTablesQuoted()