Laravel 8

8 released 8 September 2020, latest 8.83.29.

Laravel 8 reached end of life on 24 January 2023.

What changed

Laravel 8 introduced several application-structure and developer-workflow changes relative to Laravel 7. New applications use class-based model factories in the Database\Factories namespace rather than the older closure-based factory definitions. Route declarations no longer receive the App\Http\Controllers namespace prefix automatically in the default setup, so controller routes commonly use imported controller classes or fully qualified class names. The cycle also added job batching, migration squashing, rate limiting primitives, improved maintenance-mode controls, dynamic Blade components, additional time-testing helpers, and a new application scaffolding option through Laravel Jetstream. These changes improved maintainability and deployment workflows, but upgrades from Laravel 7 can require changes to factories, route definitions, and third-party packages that assumed older conventions.

What staying costs

Laravel 8 has reached end of life, so it no longer receives first-party security fixes or bug fixes. A newly disclosed framework vulnerability, or a defect affecting a supported PHP or dependency combination, will not be remediated in this line. Staying on it also increasingly constrains PHP upgrades and Composer dependency selection: package maintainers may stop testing against Laravel 8, require newer Illuminate components, or retain older transitive dependencies with their own security and compatibility concerns. The operational risk is not limited to an immediate exploit; it also includes a growing cost to maintain custom patches, defer infrastructure upgrades, and perform a larger, less predictable migration later.

What to do

Inventory the application’s Laravel, PHP, Composer, first-party package, and third-party package versions, then select a currently supported Laravel target that is compatible with the intended PHP runtime. Read the upgrade guidance for every intervening major release and identify breaking changes before changing production dependencies. In particular, review routes that rely on automatic controller namespaces, legacy model factories, authentication or scaffolding packages, queue and mail integrations, and custom code that extends Illuminate classes. Update or replace packages that do not support the target release, run the full automated test suite against the target PHP and Laravel versions, and add regression coverage for authentication, authorization, routing, queues, scheduled work, notifications, and database migrations. Rehearse the deployment on production-like data and infrastructure, with backups and a rollback plan, then remove Laravel 8-specific compatibility code once the migration is stable.

We can tell you what moving off Laravel 8 involves.

What it takes to move off Laravel 8 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.

Not sure yet? Get my plan