diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index e6d6ffc..5d4f7df 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -9,8 +9,7 @@ return (new PhpCsFixer\Config()) ->setRules([ '@PSR12' => true, - '@PHP80Migration' => true, - '@PHP81Migration' => true, + '@PHP82Migration' => true, '@DoctrineAnnotation' => true, 'align_multiline_comment' => true, 'array_indentation' => true, diff --git a/composer.json b/composer.json index 6689cd8..36c1c75 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ }, "minimum-stability": "beta", "require": { - "php": ">=8.1,<8.3", + "php": ">=8.2,<8.3", "ext-json": "*", "ext-pcntl": "*", "amphp/byte-stream": "^2.0", @@ -56,7 +56,7 @@ "config": { "sort-packages": true, "platform": { - "php": "8.1.13" + "php": "8.2.9" } }, "scripts": { @@ -72,6 +72,9 @@ "rector": [ "rector --dry-run" ], + "rector:fix": [ + "rector" + ], "static-analysis": [ "@composer validate", "@phpstan", diff --git a/composer.lock b/composer.lock index 42115ae..ed27dd8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e2f5b65d7343baeccc5b312202603a83", + "content-hash": "7dd5dfd322a8b430e673fa4f01e22020", "packages": [ { "name": "amphp/amp", @@ -4417,13 +4417,13 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=8.1,<8.3", + "php": ">=8.2,<8.3", "ext-json": "*", "ext-pcntl": "*" }, "platform-dev": [], "platform-overrides": { - "php": "8.1.13" + "php": "8.2.9" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/phpstan-rector.neon b/phpstan-rector.neon index cd866d5..fd2a646 100644 --- a/phpstan-rector.neon +++ b/phpstan-rector.neon @@ -3,7 +3,7 @@ includes: - vendor/php-standard-library/phpstan-extension/extension.neon parameters: - phpVersion: 80100 + phpVersion: 80200 tmpDir: tmp/phpstan paths: - src diff --git a/phpstan.neon b/phpstan.neon index 6f46277..4fb352f 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,7 +7,7 @@ includes: parameters: level: max - phpVersion: 80100 + phpVersion: 80200 tmpDir: tmp/phpstan paths: - src diff --git a/rector.php b/rector.php index cdcbdfc..06aa4bd 100644 --- a/rector.php +++ b/rector.php @@ -14,7 +14,7 @@ return static function (RectorConfig $rectorConfig): void { $rectorConfig->parallel(); $rectorConfig->paths([__DIR__.'/src', __DIR__.'/tests']); - $rectorConfig->phpVersion(PhpVersion::PHP_81); + $rectorConfig->phpVersion(PhpVersion::PHP_82); $rectorConfig->phpstanConfig(__DIR__.'/phpstan-rector.neon'); $rectorConfig->cacheClass(FileCacheStorage::class); $rectorConfig->cacheDirectory(__DIR__.'/tmp/rector'); @@ -26,7 +26,7 @@ $rectorConfig->sets([ SetList::CODE_QUALITY, - LevelSetList::UP_TO_PHP_81, + LevelSetList::UP_TO_PHP_82, PHPUnitSetList::PHPUNIT_91, ]); }; diff --git a/src/ClassDiscovery/Composer/ClassMapClassDiscoverer.php b/src/ClassDiscovery/Composer/ClassMapClassDiscoverer.php index 91197c2..28f1695 100644 --- a/src/ClassDiscovery/Composer/ClassMapClassDiscoverer.php +++ b/src/ClassDiscovery/Composer/ClassMapClassDiscoverer.php @@ -7,12 +7,12 @@ use BenChallis\SqlMigrations\ClassDiscovery\ClassDiscoverer; use BenChallis\SqlMigrations\ClassDiscovery\PhpNamespace; -final class ClassMapClassDiscoverer implements ClassDiscoverer +final readonly class ClassMapClassDiscoverer implements ClassDiscoverer { /** * @param array $config */ - public function __construct(private readonly array $config) + public function __construct(private array $config) { } diff --git a/src/ClassDiscovery/DeDuplicatingClassDiscoverer.php b/src/ClassDiscovery/DeDuplicatingClassDiscoverer.php index 7a55376..9bb89bb 100644 --- a/src/ClassDiscovery/DeDuplicatingClassDiscoverer.php +++ b/src/ClassDiscovery/DeDuplicatingClassDiscoverer.php @@ -4,9 +4,9 @@ namespace BenChallis\SqlMigrations\ClassDiscovery; -final class DeDuplicatingClassDiscoverer implements ClassDiscoverer +final readonly class DeDuplicatingClassDiscoverer implements ClassDiscoverer { - public function __construct(private readonly ClassDiscoverer $delegate) + public function __construct(private ClassDiscoverer $delegate) { } diff --git a/src/ClassDiscovery/PhpNamespace.php b/src/ClassDiscovery/PhpNamespace.php index 7cda46a..4b5b5ff 100644 --- a/src/ClassDiscovery/PhpNamespace.php +++ b/src/ClassDiscovery/PhpNamespace.php @@ -6,12 +6,12 @@ use Psl\Regex; -final class PhpNamespace +final readonly class PhpNamespace { /** * @param non-empty-string $namespace */ - private function __construct(private readonly string $namespace) + private function __construct(private string $namespace) { \assert($namespace[\strlen($namespace) - 1] !== '\\'); } diff --git a/src/Migration/Discovery/RevisionClassDiscoverer.php b/src/Migration/Discovery/RevisionClassDiscoverer.php index 45989ad..0e18e1e 100644 --- a/src/Migration/Discovery/RevisionClassDiscoverer.php +++ b/src/Migration/Discovery/RevisionClassDiscoverer.php @@ -11,9 +11,9 @@ /** * Discovers {@see Revision} implementing classes from classes that are yielded from another {@see ClassDiscoverer}. */ -final class RevisionClassDiscoverer implements ClassDiscoverer +final readonly class RevisionClassDiscoverer implements ClassDiscoverer { - public function __construct(private readonly ClassDiscoverer $delegate) + public function __construct(private ClassDiscoverer $delegate) { } diff --git a/src/Migration/Discovery/RevisionDiscoverer.php b/src/Migration/Discovery/RevisionDiscoverer.php index 08fd83f..1cb4e9e 100644 --- a/src/Migration/Discovery/RevisionDiscoverer.php +++ b/src/Migration/Discovery/RevisionDiscoverer.php @@ -12,11 +12,11 @@ * Discovers {@see Revision}s via a {@see RevisionClassDiscoverer} to discover classes, and a {@see RevisionFactory} * to instantiate them. */ -final class RevisionDiscoverer +final readonly class RevisionDiscoverer { public function __construct( - private readonly RevisionClassDiscoverer $classDiscoverer, - private readonly RevisionFactory $factory, + private RevisionClassDiscoverer $classDiscoverer, + private RevisionFactory $factory, ) { } diff --git a/src/Migration/Metadata/Metadata.php b/src/Migration/Metadata/Metadata.php index cbb59e5..f3ad4e5 100644 --- a/src/Migration/Metadata/Metadata.php +++ b/src/Migration/Metadata/Metadata.php @@ -6,9 +6,9 @@ use BenChallis\SqlMigrations\Migration\Version; -final class Metadata +final readonly class Metadata { - private function __construct(public readonly Version $version, public readonly State $state) + private function __construct(public Version $version, public State $state) { } diff --git a/src/Migration/Metadata/MySql/MySqlMetadataStore.php b/src/Migration/Metadata/MySql/MySqlMetadataStore.php index b1b4025..11b4db6 100644 --- a/src/Migration/Metadata/MySql/MySqlMetadataStore.php +++ b/src/Migration/Metadata/MySql/MySqlMetadataStore.php @@ -16,12 +16,12 @@ use Psl\Collection\MapInterface; use Psl\Type; -final class MySqlMetadataStore implements MetadataStore +final readonly class MySqlMetadataStore implements MetadataStore { /** * @param Executor $executor */ - public function __construct(private readonly Executor $executor) + public function __construct(private Executor $executor) { } diff --git a/src/Migration/Metadata/MySql/MySqlSchemaManager.php b/src/Migration/Metadata/MySql/MySqlSchemaManager.php index e4a4200..c121c8f 100644 --- a/src/Migration/Metadata/MySql/MySqlSchemaManager.php +++ b/src/Migration/Metadata/MySql/MySqlSchemaManager.php @@ -12,12 +12,12 @@ /** * @implements SchemaManager */ -final class MySqlSchemaManager implements SchemaManager +final readonly class MySqlSchemaManager implements SchemaManager { /** * @param non-empty-string $databaseName */ - public function __construct(private readonly string $databaseName) + public function __construct(private string $databaseName) { } diff --git a/src/Migration/MetadataUpdatingMigrations.php b/src/Migration/MetadataUpdatingMigrations.php index 2f4cff1..0114ba2 100644 --- a/src/Migration/MetadataUpdatingMigrations.php +++ b/src/Migration/MetadataUpdatingMigrations.php @@ -12,11 +12,11 @@ /** * Decorator that updates a {@see MetadataStore} when state changes are performed. */ -final class MetadataUpdatingMigrations implements Migrations +final readonly class MetadataUpdatingMigrations implements Migrations { public function __construct( - private readonly Migrations $migrations, - private readonly MetadataStore $metadata, + private Migrations $migrations, + private MetadataStore $metadata, ) { } diff --git a/src/Migration/Migration.php b/src/Migration/Migration.php index b0f870e..69150f1 100644 --- a/src/Migration/Migration.php +++ b/src/Migration/Migration.php @@ -8,9 +8,9 @@ use BenChallis\SqlMigrations\Migration\Metadata\State; use BenChallis\SqlMigrations\Migration\Revision\Revision; -final class Migration +final readonly class Migration { - public function __construct(public readonly Revision $revision, public readonly Metadata $metadata) + public function __construct(public Revision $revision, public Metadata $metadata) { } diff --git a/src/Migration/MigrationCollector.php b/src/Migration/MigrationCollector.php index 31ab385..2709656 100644 --- a/src/Migration/MigrationCollector.php +++ b/src/Migration/MigrationCollector.php @@ -10,12 +10,12 @@ use BenChallis\SqlMigrations\Migration\Metadata\MetadataStore; use BenChallis\SqlMigrations\Migration\Metadata\State; -final class MigrationCollector +final readonly class MigrationCollector { public function __construct( - private readonly MetadataStore $metadata, - private readonly RevisionDiscoverer $revisionDiscoverer, - private readonly VersionExtractor $versionExtractor, + private MetadataStore $metadata, + private RevisionDiscoverer $revisionDiscoverer, + private VersionExtractor $versionExtractor, ) { } diff --git a/src/Migration/Migrator.php b/src/Migration/Migrator.php index e0be082..d397907 100644 --- a/src/Migration/Migrator.php +++ b/src/Migration/Migrator.php @@ -10,7 +10,7 @@ use Amp\Sync\Mutex; use BenChallis\SqlMigrations\Migration\Metadata\State; -final class Migrator +final readonly class Migrator { /** * @template TResult of Result @@ -18,7 +18,7 @@ final class Migrator * * @param Executor $executor */ - public function __construct(private readonly Migrations $migrations, private readonly Executor $executor) + public function __construct(private Migrations $migrations, private Executor $executor) { } diff --git a/src/Migration/Revision/RevisionClassNameGenerator.php b/src/Migration/Revision/RevisionClassNameGenerator.php index 646db54..1af1802 100644 --- a/src/Migration/Revision/RevisionClassNameGenerator.php +++ b/src/Migration/Revision/RevisionClassNameGenerator.php @@ -7,9 +7,9 @@ use Psl\Regex; use Psr\Clock\ClockInterface; -final class RevisionClassNameGenerator +final readonly class RevisionClassNameGenerator { - public function __construct(private readonly ClockInterface $clock) + public function __construct(private ClockInterface $clock) { } diff --git a/src/Migration/Revision/RevisionGenerator.php b/src/Migration/Revision/RevisionGenerator.php index 80c00f2..64f5c8d 100644 --- a/src/Migration/Revision/RevisionGenerator.php +++ b/src/Migration/Revision/RevisionGenerator.php @@ -6,9 +6,9 @@ use Amp\File; -final class RevisionGenerator +final readonly class RevisionGenerator { - public function __construct(private readonly RevisionClassNameGenerator $classNameGenerator) + public function __construct(private RevisionClassNameGenerator $classNameGenerator) { } diff --git a/src/Migration/Revision/ServiceLocatorRevisionFactory.php b/src/Migration/Revision/ServiceLocatorRevisionFactory.php index 6eb5b33..02b3093 100644 --- a/src/Migration/Revision/ServiceLocatorRevisionFactory.php +++ b/src/Migration/Revision/ServiceLocatorRevisionFactory.php @@ -7,9 +7,9 @@ use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; -final class ServiceLocatorRevisionFactory implements RevisionFactory +final readonly class ServiceLocatorRevisionFactory implements RevisionFactory { - public function __construct(private readonly ContainerInterface $revisions) + public function __construct(private ContainerInterface $revisions) { } diff --git a/src/Migration/Version.php b/src/Migration/Version.php index 01e54bc..d51c325 100644 --- a/src/Migration/Version.php +++ b/src/Migration/Version.php @@ -9,12 +9,12 @@ * * The schema versions are treated as being in ascending order, but not sequential. */ -final class Version +final readonly class Version { /** * @param positive-int $value */ - private function __construct(private readonly int $value) + private function __construct(private int $value) { } diff --git a/tests/fixtures/Revision/RevisionWithConstructorHavingParameters.php b/tests/fixtures/Revision/RevisionWithConstructorHavingParameters.php index caa2d3a..d06e23b 100644 --- a/tests/fixtures/Revision/RevisionWithConstructorHavingParameters.php +++ b/tests/fixtures/Revision/RevisionWithConstructorHavingParameters.php @@ -7,9 +7,9 @@ use Amp\Sql\Executor; use BenChallis\SqlMigrations\Migration\Revision\Revision; -final class RevisionWithConstructorHavingParameters implements Revision +final readonly class RevisionWithConstructorHavingParameters implements Revision { - public function __construct(private readonly string $foo) // @phpstan-ignore-line + public function __construct(private string $foo) // @phpstan-ignore-line { } diff --git a/tests/helper/MetadataAsserter.php b/tests/helper/MetadataAsserter.php index d6d76aa..b3f3435 100644 --- a/tests/helper/MetadataAsserter.php +++ b/tests/helper/MetadataAsserter.php @@ -9,9 +9,9 @@ use BenChallis\SqlMigrations\Migration\Version; use PHPUnit\Framework\Assert; -final class MetadataAsserter +final readonly class MetadataAsserter { - private function __construct(private readonly Metadata $metadata) + private function __construct(private Metadata $metadata) { } diff --git a/tests/helper/MigrationAsserter.php b/tests/helper/MigrationAsserter.php index 32bd545..8d185ed 100644 --- a/tests/helper/MigrationAsserter.php +++ b/tests/helper/MigrationAsserter.php @@ -11,9 +11,9 @@ use BenChallis\SqlMigrations\Migration\Version; use PHPUnit\Framework\Assert; -final class MigrationAsserter +final readonly class MigrationAsserter { - private function __construct(private readonly Migration $migration) + private function __construct(private Migration $migration) { }