Convert @final to hard final

This commit is contained in:
Jérôme Tamarelle
2023-12-15 09:15:04 +01:00
parent eac9304aee
commit 7cb88c4db5
15 changed files with 63 additions and 42 deletions

View File

@@ -33,6 +33,14 @@ For the following method, the `class` param is now mandatory:
The following method was removed: The following method was removed:
- `ReferenceRepository::getReferences` - `ReferenceRepository::getReferences`
The following classes are now final, each of them has an interface you can implement:
- `Doctrine\Common\DataFixtures\Executor\MongoDBExecutor`
- `Doctrine\Common\DataFixtures\Executor\ORMExecutor`
- `Doctrine\Common\DataFixtures\Executor\PHPCSExecutor`
- `Doctrine\Common\DataFixtures\Purger\MongoDBPurger`
- `Doctrine\Common\DataFixtures\Purger\ORMPurger`
- `Doctrine\Common\DataFixtures\Purger\PHPCSPurger`
# Upgrade to 1.8 # Upgrade to 1.8
## Deprecated closure loggers in favor of PSR-3 ## Deprecated closure loggers in favor of PSR-3

View File

@@ -37,7 +37,9 @@
<rule ref="SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming"> <rule ref="SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming">
<exclude-pattern>src/DependentFixtureInterface.php</exclude-pattern> <exclude-pattern>src/DependentFixtureInterface.php</exclude-pattern>
<exclude-pattern>src/FixtureInterface.php</exclude-pattern> <exclude-pattern>src/FixtureInterface.php</exclude-pattern>
<exclude-pattern>src/Purger/MongoDBPurgerInterface.php</exclude-pattern>
<exclude-pattern>src/Purger/ORMPurgerInterface.php</exclude-pattern> <exclude-pattern>src/Purger/ORMPurgerInterface.php</exclude-pattern>
<exclude-pattern>src/Purger/PHPCRPurgerInterface.php</exclude-pattern>
<exclude-pattern>src/Purger/PurgerInterface.php</exclude-pattern> <exclude-pattern>src/Purger/PurgerInterface.php</exclude-pattern>
<exclude-pattern>src/OrderedFixtureInterface.php</exclude-pattern> <exclude-pattern>src/OrderedFixtureInterface.php</exclude-pattern>
<exclude-pattern>src/SharedFixtureInterface.php</exclude-pattern> <exclude-pattern>src/SharedFixtureInterface.php</exclude-pattern>

View File

@@ -65,6 +65,11 @@ parameters:
count: 1 count: 1
path: src/Purger/PHPCRPurger.php path: src/Purger/PHPCRPurger.php
-
message: "#^Parameter \\$dm of method Doctrine\\\\Common\\\\DataFixtures\\\\Purger\\\\PHPCRPurgerInterface\\:\\:setDocumentManager\\(\\) has invalid type Doctrine\\\\Common\\\\DataFixtures\\\\Purger\\\\DocumentManager\\.$#"
count: 1
path: src/Purger/PHPCRPurgerInterface.php
- -
message: "#^Access to an undefined property Doctrine\\\\Persistence\\\\Mapping\\\\ClassMetadata\\<T of object\\>\\:\\:\\$name\\.$#" message: "#^Access to an undefined property Doctrine\\\\Persistence\\\\Mapping\\\\ClassMetadata\\<T of object\\>\\:\\:\\$name\\.$#"
count: 1 count: 1
@@ -97,7 +102,7 @@ parameters:
- -
message: "#^Method Doctrine\\\\Tests\\\\Common\\\\DataFixtures\\\\Executor\\\\PHPCRExecutorTest\\:\\:getDocumentManager\\(\\) has invalid return type Doctrine\\\\ODM\\\\PHPCR\\\\DocumentManager\\.$#" message: "#^Method Doctrine\\\\Tests\\\\Common\\\\DataFixtures\\\\Executor\\\\PHPCRExecutorTest\\:\\:getDocumentManager\\(\\) has invalid return type Doctrine\\\\ODM\\\\PHPCR\\\\DocumentManager\\.$#"
count: 2 count: 1
path: tests/Common/DataFixtures/Executor/PHPCRExecutorTest.php path: tests/Common/DataFixtures/Executor/PHPCRExecutorTest.php
- -

View File

@@ -5,16 +5,14 @@ declare(strict_types=1);
namespace Doctrine\Common\DataFixtures\Executor; namespace Doctrine\Common\DataFixtures\Executor;
use Doctrine\Common\DataFixtures\Event\Listener\MongoDBReferenceListener; use Doctrine\Common\DataFixtures\Event\Listener\MongoDBReferenceListener;
use Doctrine\Common\DataFixtures\Purger\MongoDBPurger; use Doctrine\Common\DataFixtures\Purger\MongoDBPurgerInterface;
use Doctrine\Common\DataFixtures\ReferenceRepository; use Doctrine\Common\DataFixtures\ReferenceRepository;
use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ODM\MongoDB\DocumentManager;
/** /**
* Class responsible for executing data fixtures. * Class responsible for executing data fixtures.
*
* @final since 1.8.0
*/ */
class MongoDBExecutor extends AbstractExecutor final class MongoDBExecutor extends AbstractExecutor
{ {
private MongoDBReferenceListener $listener; private MongoDBReferenceListener $listener;
@@ -23,7 +21,7 @@ class MongoDBExecutor extends AbstractExecutor
* *
* @param DocumentManager $dm DocumentManager instance used for persistence. * @param DocumentManager $dm DocumentManager instance used for persistence.
*/ */
public function __construct(private DocumentManager $dm, MongoDBPurger|null $purger = null) public function __construct(private DocumentManager $dm, MongoDBPurgerInterface|null $purger = null)
{ {
if ($purger !== null) { if ($purger !== null) {
$this->purger = $purger; $this->purger = $purger;

View File

@@ -8,10 +8,8 @@ use Doctrine\ORM\EntityManagerInterface;
/** /**
* Class responsible for executing data fixtures. * Class responsible for executing data fixtures.
*
* @final since 1.8.0
*/ */
class ORMExecutor extends AbstractExecutor final class ORMExecutor extends AbstractExecutor
{ {
use ORMExecutorCommon; use ORMExecutorCommon;

View File

@@ -11,10 +11,8 @@ use function method_exists;
/** /**
* Class responsible for executing data fixtures. * Class responsible for executing data fixtures.
*
* @final since 1.8.0
*/ */
class PHPCRExecutor extends AbstractExecutor final class PHPCRExecutor extends AbstractExecutor
{ {
/** /**
* @param DocumentManagerInterface $dm manager instance used for persisting the fixtures * @param DocumentManagerInterface $dm manager instance used for persisting the fixtures

View File

@@ -8,10 +8,8 @@ use Doctrine\ODM\MongoDB\DocumentManager;
/** /**
* Class responsible for purging databases of data before reloading data fixtures. * Class responsible for purging databases of data before reloading data fixtures.
*
* @final since 1.8.0
*/ */
class MongoDBPurger implements PurgerInterface final class MongoDBPurger implements MongoDBPurgerInterface
{ {
/** /**
* Construct new purger instance. * Construct new purger instance.

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace Doctrine\Common\DataFixtures\Purger;
use Doctrine\ODM\MongoDB\DocumentManager;
interface MongoDBPurgerInterface extends PurgerInterface
{
/**
* Set the DocumentManager instance this purger instance should use.
*/
public function setDocumentManager(DocumentManager $dm): void;
}

View File

@@ -19,10 +19,8 @@ use function in_array;
/** /**
* Class responsible for purging databases of data before reloading data fixtures. * Class responsible for purging databases of data before reloading data fixtures.
*
* @final since 1.8.0
*/ */
class ORMPurger implements PurgerInterface, ORMPurgerInterface final class ORMPurger implements ORMPurgerInterface
{ {
public const PURGE_MODE_DELETE = 1; public const PURGE_MODE_DELETE = 1;
public const PURGE_MODE_TRUNCATE = 2; public const PURGE_MODE_TRUNCATE = 2;

View File

@@ -6,9 +6,6 @@ namespace Doctrine\Common\DataFixtures\Purger;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/**
* ORMPurgerInterface
*/
interface ORMPurgerInterface extends PurgerInterface interface ORMPurgerInterface extends PurgerInterface
{ {
/** /**

View File

@@ -10,10 +10,8 @@ use PHPCR\Util\NodeHelper;
/** /**
* Class responsible for purging databases of data before reloading data fixtures. * Class responsible for purging databases of data before reloading data fixtures.
*
* @final since 1.8.0
*/ */
class PHPCRPurger implements PurgerInterface final class PHPCRPurger implements PurgerInterface
{ {
public function __construct(private DocumentManagerInterface|null $dm = null) public function __construct(private DocumentManagerInterface|null $dm = null)
{ {

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Doctrine\Common\DataFixtures\Purger;
interface PHPCRPurgerInterface extends PurgerInterface
{
/**
* Set the DocumentManager instance this purger instance should use.
*/
public function setDocumentManager(DocumentManager $dm): void;
}

View File

@@ -69,8 +69,7 @@ class ORMExecutorSharedFixtureTest extends BaseTestCase
$this->assertEquals('admin@example.com', $userReference->getEmail()); $this->assertEquals('admin@example.com', $userReference->getEmail());
} }
/** @return SharedFixtureInterface&MockObject */ private function getMockFixture(): SharedFixtureInterface&MockObject
private function getMockFixture(): SharedFixtureInterface
{ {
return $this->createMock(SharedFixtureInterface::class); return $this->createMock(SharedFixtureInterface::class);
} }

View File

@@ -8,7 +8,7 @@ use Closure;
use Doctrine\Common\DataFixtures\Executor\MultipleTransactionORMExecutor; use Doctrine\Common\DataFixtures\Executor\MultipleTransactionORMExecutor;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor; use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\Purger\ORMPurger; use Doctrine\Common\DataFixtures\Purger\ORMPurgerInterface;
use Doctrine\Common\EventManager; use Doctrine\Common\EventManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Tests\Common\DataFixtures\BaseTestCase; use Doctrine\Tests\Common\DataFixtures\BaseTestCase;
@@ -123,21 +123,18 @@ class ORMExecutorTest extends BaseTestCase
@$executor->execute([$fixture, $fixture]); @$executor->execute([$fixture, $fixture]);
} }
/** @return EntityManagerInterface&MockObject */ private function getMockEntityManager(): EntityManagerInterface&MockObject
private function getMockEntityManager(): EntityManagerInterface
{ {
return $this->createMock(ForwardCompatibleEntityManager::class); return $this->createMock(ForwardCompatibleEntityManager::class);
} }
/** @return FixtureInterface&MockObject */ private function getMockFixture(): FixtureInterface&MockObject
private function getMockFixture(): FixtureInterface
{ {
return $this->createMock(FixtureInterface::class); return $this->createMock(FixtureInterface::class);
} }
/** @return ORMPurger&MockObject */ private function getMockPurger(): ORMPurgerInterface&MockObject
private function getMockPurger(): ORMPurger
{ {
return $this->createMock(ORMPurger::class); return $this->createMock(ORMPurgerInterface::class);
} }
} }

View File

@@ -6,7 +6,7 @@ namespace Doctrine\Tests\Common\DataFixtures\Executor;
use Doctrine\Common\DataFixtures\Executor\PHPCRExecutor; use Doctrine\Common\DataFixtures\Executor\PHPCRExecutor;
use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\Purger\PHPCRPurger; use Doctrine\Common\DataFixtures\Purger\PHPCRPurgerInterface;
use Doctrine\ODM\PHPCR\DocumentManager; use Doctrine\ODM\PHPCR\DocumentManager;
use Doctrine\Tests\Common\DataFixtures\BaseTestCase; use Doctrine\Tests\Common\DataFixtures\BaseTestCase;
use Exception; use Exception;
@@ -119,14 +119,12 @@ class PHPCRExecutorTest extends BaseTestCase
} }
} }
/** @return PHPCRPurger&MockObject */ private function getPurger(): PHPCRPurgerInterface&MockObject
private function getPurger(): PHPCRPurger
{ {
return $this->createMock(PHPCRPurger::class); return $this->createMock(PHPCRPurgerInterface::class);
} }
/** @return DocumentManager&MockObject */ private function getDocumentManager(): DocumentManager&MockObject
private function getDocumentManager(): DocumentManager
{ {
if (! class_exists(DocumentManager::class)) { if (! class_exists(DocumentManager::class)) {
$this->markTestSkipped('Missing doctrine/phpcr-odm'); $this->markTestSkipped('Missing doctrine/phpcr-odm');
@@ -143,8 +141,7 @@ class PHPCRExecutorTest extends BaseTestCase
->getMock(); ->getMock();
} }
/** @return FixtureInterface&MockObject */ private function getMockFixture(): FixtureInterface&MockObject
private function getMockFixture(): FixtureInterface
{ {
return $this->createMock(FixtureInterface::class); return $this->createMock(FixtureInterface::class);
} }