Skip to content

Upgrade to Laravel 13 (v4.0.0) - #343

Merged
JonoB merged 5 commits into
masterfrom
laravel-13
Oct 12, 2026
Merged

JonoB merged 5 commits into
masterfrom
laravel-13

Conversation

@JonoB

@JonoB JonoB commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Upgrades the SendPortal application to Laravel 13 and sendportal-core 4.

Requires sendportal-core 4.0.0 (mettle/sendportal-core#226, released as V4.0.0).

Changes

  • laravel/framework ^13.0, PHP ^8.3, mettle/sendportal-core ^4.0
  • laravel/tinker ^3.0, phpunit/phpunit ^12.5, plus Laravel 13-compatible minimums for Horizon, UI, Livewire (still v3), Guzzle (still v7), Collision, Ignition, Faker and Mockery
  • Rename App\Http\Middleware\VerifyCsrfToken to PreventRequestForgery, matching Laravel 13's rename. Laravel 13's middleware also accepts same-origin requests via Sec-Fetch-Site.
  • config/database.php: use Pdo\Mysql::ATTR_SSL_CA on PHP 8.5+, where PDO::MYSQL_ATTR_SSL_CA is deprecated (same as the Laravel 13 skeleton)
  • Convert @test/@group annotations to PHPUnit attributes, migrate phpunit.xml.dist, ignore .phpunit.cache
  • Fix SetupTest::the_setup_command_should_stop_on_the_admin_step_if_there_are_not_users, which depended on the local .env and APP_URL and had never passed in CI; it also compared a boolean to 5
  • CI matrix: PHP 8.3 / 8.4 / 8.5
  • README requirements and docs links updated for v4; CHANGELOG entry added

Session and cache settings are set explicitly in the config files, so Laravel 13's new default prefixes don't apply.

Upgrade docs: mettle/sendportal-docs#28.

JonoB added 3 commits October 12, 2026 09:27
- Require laravel/framework ^13.0, PHP ^8.3 and mettle/sendportal-core ^4.0
- Bump tinker to ^3.0, PHPUnit to ^12.5 and other dependencies to
  Laravel 13 compatible releases
- Rename the VerifyCsrfToken middleware to PreventRequestForgery
- Use Pdo\Mysql::ATTR_SSL_CA on PHP 8.5+
- Convert @test/@group doc-comment annotations to PHPUnit attributes
- Test against PHP 8.3, 8.4 and 8.5 in CI

Amp-Thread-ID: https://ampcode.com/threads/T-01a12ce4-5849-7298-9b52-0f19594ee434
JonoB added 2 commits October 12, 2026 09:44
The Env and Url setup steps check the local .env file and APP_URL, so
the test only passed on machines with a configured .env (never in CI).
Stub those two steps, and assert that the admin step is not completed
instead of comparing its boolean `completed` flag to 5.

Amp-Thread-ID: https://ampcode.com/threads/T-01a12ce4-5849-7298-9b52-0f19594ee434
@JonoB
JonoB merged commit 656210c into master Oct 12, 2026
@JonoB
JonoB deleted the laravel-13 branch October 12, 2026 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant