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:
- `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
## Deprecated closure loggers in favor of PSR-3

View File

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

View File

@@ -65,6 +65,11 @@ parameters:
count: 1
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\\.$#"
count: 1
@@ -97,7 +102,7 @@ parameters:
-
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
-

View File

@@ -5,16 +5,14 @@ declare(strict_types=1);
namespace Doctrine\Common\DataFixtures\Executor;
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\ODM\MongoDB\DocumentManager;
/**
* Class responsible for executing data fixtures.
*
* @final since 1.8.0
*/
class MongoDBExecutor extends AbstractExecutor
final class MongoDBExecutor extends AbstractExecutor
{
private MongoDBReferenceListener $listener;
@@ -23,7 +21,7 @@ class MongoDBExecutor extends AbstractExecutor
*
* @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) {
$this->purger = $purger;

View File

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

View File

@@ -11,10 +11,8 @@ use function method_exists;
/**
* 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

View File

@@ -8,10 +8,8 @@ use Doctrine\ODM\MongoDB\DocumentManager;
/**
* 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.

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.
*
* @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_TRUNCATE = 2;

View File

@@ -6,9 +6,6 @@ namespace Doctrine\Common\DataFixtures\Purger;
use Doctrine\ORM\EntityManagerInterface;
/**
* ORMPurgerInterface
*/
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.
*
* @final since 1.8.0
*/
class PHPCRPurger implements PurgerInterface
final class PHPCRPurger implements PurgerInterface
{
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());
}
/** @return SharedFixtureInterface&MockObject */
private function getMockFixture(): SharedFixtureInterface
private function getMockFixture(): SharedFixtureInterface&MockObject
{
return $this->createMock(SharedFixtureInterface::class);
}

View File

@@ -8,7 +8,7 @@ use Closure;
use Doctrine\Common\DataFixtures\Executor\MultipleTransactionORMExecutor;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
use Doctrine\Common\DataFixtures\Purger\ORMPurgerInterface;
use Doctrine\Common\EventManager;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Tests\Common\DataFixtures\BaseTestCase;
@@ -123,21 +123,18 @@ class ORMExecutorTest extends BaseTestCase
@$executor->execute([$fixture, $fixture]);
}
/** @return EntityManagerInterface&MockObject */
private function getMockEntityManager(): EntityManagerInterface
private function getMockEntityManager(): EntityManagerInterface&MockObject
{
return $this->createMock(ForwardCompatibleEntityManager::class);
}
/** @return FixtureInterface&MockObject */
private function getMockFixture(): FixtureInterface
private function getMockFixture(): FixtureInterface&MockObject
{
return $this->createMock(FixtureInterface::class);
}
/** @return ORMPurger&MockObject */
private function getMockPurger(): ORMPurger
private function getMockPurger(): ORMPurgerInterface&MockObject
{
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\FixtureInterface;
use Doctrine\Common\DataFixtures\Purger\PHPCRPurger;
use Doctrine\Common\DataFixtures\Purger\PHPCRPurgerInterface;
use Doctrine\ODM\PHPCR\DocumentManager;
use Doctrine\Tests\Common\DataFixtures\BaseTestCase;
use Exception;
@@ -119,14 +119,12 @@ class PHPCRExecutorTest extends BaseTestCase
}
}
/** @return PHPCRPurger&MockObject */
private function getPurger(): PHPCRPurger
private function getPurger(): PHPCRPurgerInterface&MockObject
{
return $this->createMock(PHPCRPurger::class);
return $this->createMock(PHPCRPurgerInterface::class);
}
/** @return DocumentManager&MockObject */
private function getDocumentManager(): DocumentManager
private function getDocumentManager(): DocumentManager&MockObject
{
if (! class_exists(DocumentManager::class)) {
$this->markTestSkipped('Missing doctrine/phpcr-odm');
@@ -143,8 +141,7 @@ class PHPCRExecutorTest extends BaseTestCase
->getMock();
}
/** @return FixtureInterface&MockObject */
private function getMockFixture(): FixtureInterface
private function getMockFixture(): FixtureInterface&MockObject
{
return $this->createMock(FixtureInterface::class);
}