chore: support PHP 8.3 & 8.4#2
Merged
Merged
Conversation
Inline the app-bootstrap logic (createApplication) that l4-testing's PkgAppTestCase provided directly into tests/TestCase.php, extending the framework's Illuminate\Foundation\Testing\TestCase instead. Dropping the package also removes its unused monolog ~1.1 constraint, which had been pinning laravel/framework to 4.2.77. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
actions/cache@v1 was auto-failing (deprecated); bump it and actions/checkout to v4. Replace the single php-version with a [8.3, 8.4] matrix (fail-fast off) so both target versions are tested, and scope the composer cache key per php version. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add rector/rector with an explicit rule list (not level sets) so the migration stays compatible with both PHP 8.3 and 8.4. Key rule ExplicitNullableParamTypeRector rewrites `Type $x = null` to `?Type $x = null`, fixing the implicit-nullable deprecation that is hard-deprecated on 8.4 (and valid on 8.3). Also adds #[\Override] attributes. Level sets were avoided on purpose: UP_TO_PHP_84 stripped the parentheses off `new X()->method()`, which is 8.4-only syntax and fails to parse on 8.3. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b282883 to
48d6647
Compare
L42x framework 4.2.83 dropped the Illuminate\Remote component, but the L42x-app skeleton's config/app.php still registered RemoteServiceProvider, breaking app boot in the test suite. Track the L42x-app branch that removes that stale provider so CI can boot cleanly on 8.3 and 8.4. Revert to dev-master once that branch is merged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The remove-remote-service-provider fix is merged into L42x-app master, so point back at dev-master instead of the temporary fix branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tujuan
Menjadikan package ini jalan di PHP 8.3 dan 8.4 (framework L42x
laravel/framework4.2.83).Perubahan
1. Hapus dependency
anlutro/l4-testing(436f6f8)createApplication) yang tadinya disediakanPkgAppTestCaselangsung ketests/TestCase.php, extendingIlluminate\Foundation\Testing\TestCasebawaan framework.monolog ~1.1yang tak terpakai dari l4-testing — inilah yang menguncilaravel/frameworkdi 4.2.77. Dengan lepas, resolver naik ke 4.2.83 yang sudah support PHP 8.4.2. CI: bump actions ke v4 + matrix 8.3/8.4 (
9c02ed9)actions/cache@v1(auto-failed, deprecated) danactions/checkout@v1→@v4.php-versiontunggal → matrix[8.3, 8.4](fail-fast: false), cache key di-scope per versi.3. Rector dengan rule eksplisit 8.3/8.4 (
48d6647)rector/rector+rector.phpmemakai daftar rule eksplisit (bukan level set).ExplicitNullableParamTypeRectormenulis ulangType $x = null→?Type $x = null(deprecation implicit-nullable yang hard-deprecated di 8.4, sah di 8.3). Plus#[\Override].UP_TO_PHP_84menghapus kurung padanew X()->method()— syntax 8.4-only yang gagal parse di 8.3.4. Sinkronkan skeleton test (L42x-app) (
b39b18d,847fd09)Illuminate\Remote, tapi skeleton L42x-app masih mendaftarkanRemoteServiceProviderdiconfig/app.php→ boot app di test gagal.laravel/laraveltetapdev-master.Verifikasi
laravel/framework4.2.83vendor/bin/phpunit→ 67 tests, 106 assertions, hijau di PHP 8.3 & 8.4🤖 Generated with Claude Code