Skip to content

Commit

Permalink
Convert @final to hard final
Browse files Browse the repository at this point in the history
  • Loading branch information
GromNaN committed Nov 5, 2024
1 parent eac9304 commit 7cb88c4
Show file tree
Hide file tree
Showing 15 changed files with 63 additions and 42 deletions.
8 changes: 8 additions & 0 deletions UPGRADE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions phpcs.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
7 changes: 6 additions & 1 deletion phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

-
Expand Down
8 changes: 3 additions & 5 deletions src/Executor/MongoDBExecutor.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@
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;

Expand All @@ -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)

Check warning on line 24 in src/Executor/MongoDBExecutor.php

View check run for this annotation

Codecov / codecov/patch

src/Executor/MongoDBExecutor.php#L24

Added line #L24 was not covered by tests
{
if ($purger !== null) {
$this->purger = $purger;
Expand Down
4 changes: 1 addition & 3 deletions src/Executor/ORMExecutor.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@

/**
* Class responsible for executing data fixtures.
*
* @final since 1.8.0
*/
class ORMExecutor extends AbstractExecutor
final class ORMExecutor extends AbstractExecutor
{
use ORMExecutorCommon;

Expand Down
4 changes: 1 addition & 3 deletions src/Executor/PHPCRExecutor.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@

/**
* 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
Expand Down
4 changes: 1 addition & 3 deletions src/Purger/MongoDBPurger.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@

/**
* 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.
Expand Down
15 changes: 15 additions & 0 deletions src/Purger/MongoDBPurgerInterface.php
Original file line number Diff line number Diff line change
@@ -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;
}
4 changes: 1 addition & 3 deletions src/Purger/ORMPurger.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,8 @@

/**
* 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;
Expand Down
3 changes: 0 additions & 3 deletions src/Purger/ORMPurgerInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@

use Doctrine\ORM\EntityManagerInterface;

/**
* ORMPurgerInterface
*/
interface ORMPurgerInterface extends PurgerInterface
{
/**
Expand Down
4 changes: 1 addition & 3 deletions src/Purger/PHPCRPurger.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@

/**
* 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)
{
Expand Down
13 changes: 13 additions & 0 deletions src/Purger/PHPCRPurgerInterface.php
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ public function testSharedFixtures(): void
$this->assertEquals('[email protected]', $userReference->getEmail());
}

/** @return SharedFixtureInterface&MockObject */
private function getMockFixture(): SharedFixtureInterface
private function getMockFixture(): SharedFixtureInterface&MockObject
{
return $this->createMock(SharedFixtureInterface::class);
}
Expand Down
13 changes: 5 additions & 8 deletions tests/Common/DataFixtures/Executor/ORMExecutorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
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;
Expand Down Expand Up @@ -123,21 +123,18 @@ public function testExecuteMultipleTransactionsCountTransactionalCalls(): void
@$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);
}
}
13 changes: 5 additions & 8 deletions tests/Common/DataFixtures/Executor/PHPCRExecutorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

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;
Expand Down Expand Up @@ -119,14 +119,12 @@ public function testFailedTransactionalStopsPurgingAndFixtureLoading(): void
}
}

/** @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');
Expand All @@ -143,8 +141,7 @@ private function getDocumentManager(): DocumentManager
->getMock();
}

/** @return FixtureInterface&MockObject */
private function getMockFixture(): FixtureInterface
private function getMockFixture(): FixtureInterface&MockObject
{
return $this->createMock(FixtureInterface::class);
}
Expand Down

0 comments on commit 7cb88c4

Please sign in to comment.