Version and compatibility guide
Last reviewed: 2026-08-26.
Course baseline
Section titled “Course baseline”- PHP 8.5 is the current stable language baseline.
- PHP 8.2–8.4 remain relevant to maintained production applications.
- PHP 8.6 is in beta at the review date and is not the production baseline.
- Laravel 13 is the current framework baseline.
- Laravel 11–12 remain useful migration and interview context. Laravel 10 may still be encountered but is outside its official security-support window.
Sources: PHP supported versions, PHP releases, Laravel 12 release/support table, Laravel 13 documentation.
Compatibility labels
Section titled “Compatibility labels”Chapters use these labels rather than pretending all codebases are current:
- Current: suitable default for Laravel 13/PHP 8.5.
- Common: supported or recently supported behavior common in Laravel 11–12/PHP 8.2–8.4.
- Legacy: likely to appear in older systems; understand the migration risk.
- Preview: not a safe production assumption.
Items worth recognizing from older code
Section titled “Items worth recognizing from older code”- Laravel applications before the streamlined Laravel 11 structure often configure middleware and providers in kernel/config files that no longer exist in fresh applications.
- Doctrine-style annotations may appear where modern PHP attributes are now possible.
- Docblock-only types remain common despite typed properties, union/intersection types and enums.
- PHPUnit class-style suites are common even where teams now prefer Pest syntax.
- Laravel Mix/Webpack may appear where current applications use Vite.
- Passport is appropriate for OAuth2 requirements; Sanctum is usually the smaller solution for first-party SPAs and simple API tokens.
Avoid memorizing patch versions
Section titled “Avoid memorizing patch versions”Interview value lies in explaining compatibility, support policy and upgrade risk—not reciting patch releases. Verify exact versions before proposing a production upgrade.