App Commandos
Laravel

Laravel 13 Is Here: Release Highlights, PHP 8.4 Integration, and Upgrade Path

Published March 3, 2026 • 5 min read • 1,098 words

Laravel 13 arrived in February 2026, raising the minimum PHP requirement to 8.4 and integrating property hooks, asymmetric visibility, and a refined developer experience. Here is everything you need to plan a smooth upgrade.

Laravel 13 continues the framework's annual February release cycle, now requiring PHP 8.4 as a minimum
Laravel 13 continues the framework's annual February release cycle, now requiring PHP 8.4 as a minimum

Laravel 13 landed in February 2026, maintaining the framework's disciplined annual release schedule. Every year since Laravel 9, the core team has shipped a major version in the first quarter — dropping end-of-life PHP support, removing deprecated APIs, and embracing new language capabilities. Laravel 13 continues that pattern by raising the minimum PHP requirement to 8.4 and integrating features that were simply unavailable in earlier versions of the language.

This guide covers what PHP 8.4 brings to a Laravel application, how the framework uses those features, the upgrade process you should follow, and the broader ecosystem state heading into mid-2026.

Laravel's Annual Release Rhythm

Version Release Date PHP Minimum
Laravel 10 February 2023 PHP 8.1
Laravel 11 March 2024 PHP 8.2
Laravel 12 February 2025 PHP 8.2
Laravel 13 February 2026 PHP 8.4

The pattern is consistent: each release targets a new PHP floor, prunes the compatibility code that kept older PHP versions working, and adds internal improvements that modern PHP enables. If you have been staying current, Laravel 13 should feel familiar.

What PHP 8.4 Adds to the Equation

PHP 8.4 shipped in November 2024 with four meaningful additions that affect how Laravel-style code is written.

Property Hooks

Property hooks are the biggest language change in PHP 8.4. They allow you to define get and set behaviour directly on a class property without explicit methods:

class User extends Model
{
    public string $fullName {
        get => trim($this->first_name . ' ' . $this->last_name);
    }
}

// Accessing it reads naturally
echo $user->fullName; // "Jane Smith"

For Eloquent models, this means that certain read-only computed values that previously required getXxxAttribute() magic methods or Attribute::make() casts can now be expressed with plain PHP. The accessor still works perfectly, but property hooks give you a cleaner alternative for simple cases.

Asymmetric Visibility

PHP 8.4 lets you declare that a property is publicly readable but only writable within the class itself:

class BlogPost extends Model
{
    public private(set) string $slug;
}

This opens the door to more defensively designed value objects and service classes inside a Laravel application — properties that cannot be mutated from the outside without requiring full readonly immutability.

New Array Functions

Four functional-style array functions join PHP in 8.4:

  • array_find() — returns the first element matching a callback
  • array_find_key() — returns the key of the first matching element
  • array_any() — returns true if any element passes a callback
  • array_all() — returns true if all elements pass a callback

These complement Laravel's Collection methods and reduce the boilerplate needed when working with plain PHP arrays in places like service providers or configuration resolution.

#[\Deprecated] Attribute

PHP 8.4 formalises the deprecation attribute, which the framework now uses internally to mark methods scheduled for removal in Laravel 14. You will see deprecation notices in your logs pointing you to the replacement APIs with ample time to migrate.

Development teams adopting Laravel 13 benefit most from a structured, incremental upgrade process
Development teams adopting Laravel 13 benefit most from a structured, incremental upgrade process

The Laravel 13 Upgrade Process

Step 1 — Audit Your PHP Version

Confirm that every environment (local, staging, production) runs PHP 8.4. On Laravel Herd, switch from the menu. On Forge, update the PHP version in the server settings. On Vapor, set runtime: php-8.4 in your vapor.yml.

Check that PHP extensions your project depends on — Redis, ImageMagick, GD, Swoole — have PHP 8.4 builds available.

Step 2 — Read the Upgrade Guide

Always start with the official upgrade guide at laravel.com/docs/13.x/upgrade. It lists every breaking change, the APIs that were deprecated in Laravel 12 and removed in 13, and the recommended replacement for each. Skim the full guide before touching any code.

Step 3 — Update composer.json

{
    "require": {
        "php": "^8.4",
        "laravel/framework": "^13.0"
    }
}

Run composer update incrementally. Start with just laravel/framework, resolve conflicts, then update first-party packages one at a time: Sanctum, Horizon, Telescope, Octane, Cashier.

Step 4 — Use Laravel Shift

Laravel Shift automates the mechanical parts of the upgrade — updating stub files, renaming changed method calls, adjusting config structure. It supports every Laravel major version and pays for itself immediately on any codebase larger than a hobby project.

Step 5 — Drain Your Queues

Before switching your production application from Laravel 12 to 13, drain all queued jobs. Job payloads are serialized with the Laravel version that created them. Running Laravel 13 workers against Laravel 12 payloads can cause deserialization failures if internal class structures changed.

Step 6 — Run Your Test Suite Early

Do not wait until everything is "done" to run tests. Run php artisan test after each batch of changes. The earlier you find a breakage, the cheaper it is to fix. If you do not have a test suite, this upgrade is a good motivation to start one.

First-Party Package Compatibility

Laravel's first-party packages release compatible versions alongside each framework major. By the time you read this, the following should all have ^13.0 support published:

  • Laravel Sanctum — API token and SPA authentication
  • Laravel Horizon — Redis queue monitoring
  • Laravel Telescope — local development debugger
  • Laravel Octane — high-performance application server
  • Laravel Scout — full-text search integration
  • Laravel Cashier — Stripe and Paddle billing

Check the GitHub releases page for each package if you hit a constraint conflict.

PHP 8.4 property hooks allow computed properties to be expressed with clean, native syntax
PHP 8.4 property hooks allow computed properties to be expressed with clean, native syntax

Third-Party Packages

Community packages typically publish Laravel 13 compatibility within two to four weeks of the framework release. Check each package's composer.json for a "laravel/framework": "^13.0" constraint in require. If it is not there yet, open an issue or submit a PR — most maintainers are responsive around major release time.

Laravel Octane and FrankenPHP in 2026

Octane with FrankenPHP has become the standard for production Laravel deployments requiring high concurrency. FrankenPHP embeds PHP directly into a Cadence-based web server, eliminating the PHP-FPM process model overhead and enabling real concurrency within a single process. Laravel 13 is fully tested and supported on this stack.

For applications that do not need concurrency, PHP-FPM behind Nginx or Caddy remains entirely viable and well-supported.

Running your test suite against each batch of dependency updates is the safest upgrade strategy
Running your test suite against each batch of dependency updates is the safest upgrade strategy

Support Timeline

Release Bug Fixes Until Security Fixes Until
Laravel 11 August 2025 February 2026
Laravel 12 August 2026 February 2027
Laravel 13 August 2027 February 2028

If you are running Laravel 10 or earlier, security support has ended. Laravel 13 is the right upgrade target for 2026.

Conclusion

Laravel 13 is an evolutionary release built on PHP 8.4's most useful new capabilities. Property hooks clean up Eloquent accessors, asymmetric visibility enables safer object design, and the array function additions reduce boilerplate in lower-level code. The upgrade path is well-documented and tooled, and the ecosystem has kept pace.

The single most important advice: read the official upgrade guide before touching composer.json, drain your queues before flipping production, and let your test suite drive the migration. Laravel 13 is a confident upgrade for any team that has stayed current.