BreadcrumbHomeResourcesBlog Laravel PHP Requirements and How They Impact Laravel Upgrades October 24, 2024 Laravel PHP Requirements and How They Impact Laravel UpgradesPHP DevelopmentBy Renato SalvatoriLaravel is one of the most widely used free and open source PHP frameworks available for developer teams. It's popularity is often credited to it's thriving community, scalability, and easy-to use approach. However, to make the most of this powerful framework, developers must understand Laravel PHP requirements and how they impact Laravel upgrades.In this blog, I introduce the Laravel framework and provide an overview of how it relates to the PHP language. I discuss why using the most up-to-date versions of both PHP and Laravel matter, provide insights into Laravel upgrades, and walk through the PHP requirements for supported Laravel versions. Finally, I recommend available PHP support options for teams considering a Laravel upgrade.Table of ContentsLaravel Framework: OverviewWhy Laravel Upgrades MatterWhat to Know Before Starting a Laravel UpgradeLaravel PHP Version RequirementsKeep PHP Supported During Laravel UpgradesFinal ThoughtsTable of Contents1 - Laravel Framework: Overview2 - Why Laravel Upgrades Matter3 - What to Know Before Starting a Laravel Upgrade4 - Laravel PHP Version Requirements5 - Keep PHP Supported During Laravel Upgrades6 - Final ThoughtsBack to topLaravel Framework: OverviewReleased in 2011 as an open source framework, Laravel is both a full stack framework and an ecosystem, as it supplies features for developing, testing, profiling, and deploying web applications. But, before I get to Laravel PHP requirements, it is critical to have a base-level understanding of the Laravel framework.What Is Laravel?Laravel is a web application framework with expressive, elegant syntax. It is the most popular PHP framework used by PHP developers.Laravel simplifies some of the most common tasks associated with web projects, including Model-View-Controller (MVC), authentication, authorization, routing, sessions, caching, queuing, and much more. It has a large community forum and tutorials, making it the best documented framework for building PHP apps. In fact, the highly active community is often cited as one of Laravel's main strengths.Laravel FeaturesLaravel's success as a PHP framework also is credited to it's impressive list of features. These include:MVC architecturePackage system to install "bundles / packages" and new featuresRobust and flexible routing systemEloquent Object-Relational Mapping (ORM) to easily work with databases through a simple and clear syntaxRESTful APIsArtisan, a comand-line tool to help with tasks like database migrations, running tests, and creating custom commandsBlade Temple system to provide features like template inheritance and sections for reusable codeBuilt-in tools for managing user logins and rolesScheduler for automating routine tasks such as sending emails or cleaning up the database directly within LaravelPre-packaged development environment for Laravel projects like HomesteadAre Laravel and PHP the Same?No, Laravel and PHP are not the same, but they are related, as Laravel is a framework built on PHP.PHP (Personal Home Page) or Hypertext Preprocessor is a scripting language used for building dynamic web pages, scripting procedures, and more. Core PHP is the foundation of all PHP frameworks, including Laravel. Laravel, on the other hand, is an elegant and expressive framework that uses a modern syntax. It simplifies web development tasks and improves the development experience without hampering functionality or efficiency.Back to topWhy Laravel Upgrades MatterIn the PHP ecosystem, which includes applications built on a Laravel framework, not staying up to date with the latest technologies and versions can have critical consequences for your business. Failing to upgrade can leave you vulnerable to security breaches, limit your maintenance options, and compromise scalability in the future.That's why it's important to be aware of the lifecycle of the frameworks you're using. Every PHP framework, including Laravel, will be influenced by the following factors:The PHP end of life (EOL) cycleOngoing vulnerabilities and available security patchesFramework improvements and new featuresFramework integration with external softwareThese factors are closely related to Laravel's version release cycle. Like most modern technologies, Laravel releases new versions at a regular cadence to improve the framework (with more on this below). Changes in a new Laravel release could include:Optimizing the framework code performance to take advantage of new features in the most recent PHP versionsOptimizing the framework syntax to use the best practices of the most recent PHP versionsFixing bugs and security issues discovered in the current Laravel framework codeImproving integration with components of other frameworks or libraries to make Laravel a "full stack framework" in the PHP ecosystemKeep Pace With PHP VersionsLaravel upgrades matter because the process ensures you can access the newest features and security improvements included in the most up-to-date PHP version.Every PHP version has a defined community support lifecycle, with each minor release receiving community support for four years. That support is broken down into two phases, active support and security support. After the version reaches the end of the security support phase, the version is considered end of life and no longer receives patches from the community. Any vulnerabilities that occur after the EOL date will remain unpatched.Due to many businesses delaying upgrades and modernization projects, many Laravel projects currently run on EOL PHP versions. In order to stay up to date and competitive, these Laravel applications must be migrated to a new release that supports current PHP versions. For example, some older Laravel versions do not support PHP 7.4 through PHP 8.X. Moving to a supported PHP version will be necessary to upgrade Laravel.Simplify Your PHP MigrationMigrating PHP versions can be difficult. Zend is here to help. We make migrations easy – including migrating code on frameworks like Laravel, Laminas, and others.Explore Migration Services How to Plan a MigrationAccess New FeaturesUpgrading to a more recent version of Laravel will introduce several improvements over the previous version, including enhanced performance, better security features, and new functionalities like integrations with new tools and external libraries (like Symfony).Improved Security and Bug FixesEvery software framework, including Laravel, has vulnerabilities that are discovered and patched over time. Running an outdated version means your application is exposed to known security issues that could have been mitigated with an upgrade. Using the most up-to-date Laravel version keeps your critical apps secure, compliant, and performant.Better PerformanceEach new version of Laravel introduces performance optimizations that make your application faster and more efficient. These improvements are often the result of extensive research and development by the Laravel team and community, and they can have a significant impact on your application's load times and responsiveness.Compatibility and SupportFrameworks evolve to support new web standards, browser features, and third-party integrations. Running an outdated version of Laravel can lead to compatibility issues with modern tools and libraries, making it harder to integrate new features or technologies.Back to topWhat to Know Before Starting a Laravel UpgradeEvery new Laravel version can lead to significant changes in installation requirements. These changes can include upgrading PHP, enabling PHP extensions, new minimum resources, and new memory requirements. Additionally, updating installed components can also involve important changes.The Laravel Release CycleLaravel and its other first-party packages follow Semantic Versioning. Major framework releases are released every year (usually in February), while minor and patch releases may be released as often as every week. However, these minor and patch releases should never contain breaking changes.For all Laravel releases, bug fixes are provided for 18 months, and security fixes are provided for two years. For all additional libraries, including Lumen, only the latest major release receives bug fixes.Laravel VersionSupported PHP VersionsReleaseBug Fixes UntilSecurity Fixes Until6 (LTS)*7.2 - 8.0September 3rd, 2019January 25th, 2022September 6th, 20227*7.2 - 8.0March 3rd, 2020October 6th, 2020March 3rd, 20218*7.3 - 8.1September 8th, 2020July 26th, 2022January 24th, 20239*8.0 - 8.2February 8th, 2022August 8th, 2023February 6th, 202410**8.1 - 8.3February 14th, 2023August 6th, 2024February 4th, 2025118.2 - 8.3March 12th, 2024September 3rd, 2025March 12th, 2026128.2 - 8.3Q1 2025Q3 2026Q1 2027*End of Life**Security Fixes Only Methods for Updating Laravel VersionsUpgrading a Laravel PHP application can be approached in two main ways: manually or through automation tools like Laravel Shift.The manual approach consists of identifying and resolving compatibility issues, adjusting deprecated code, and carefully updating dependencies step by step. Laravel provides a detailed guide for this process. For each version, reported changes are classified in one of three ways:High Impact ChangesMedium Impact ChangesLow Impact ChangesHigh and medium changes must be carefully analyzed before proceeding with a Laravel update.If you choose to adopt an automated approach by using a tool such as Laravel Shift, you can automate the detection and correction of deprecated or incompatible code, making your Laravel upgrade faster and less error prone. This tool also makes it easy to migrate other frameworks, such as Lumen and Tailwind. However, as it is a commercial tool, Laravel Shift will come with a price tag.Back to topLaravel PHP Version RequirementsA critical step in completing a Laravel upgrade is to understand the PHP requirements involved, as Laravel requires PHP 8 or a newer version. However, depending on your application, some additional resources and software will be required:A web server, such as Apache, nginx, or Caddy to serve the applicationA database management system such as MySQL, PostgreSQL, SQLite, and/or SQL ServerComposer installed on your system to manage Laravel dependenciesAdditional PHP extensions, such as OpenSSL, Mbstring, Tokenizer, JSON, Ctype, and PdoLet's take an in-depth look at Laravel versions and their PHP requirements.Laravel 9 PHP Version RequirementsLaravel 9 installation requires the most up-to-date form of PHP 8, "PHPUnit 8", and a number of other prerequisites. Laravel, as a framework, depends on several community-driven and Symfony 9 libraries. The PHP 8 requirement is because Laravel 9 is solely dependent on Symfony's latest v6.0 release, which depends on PHP 8. PHP extension requirements may differ. Visit the Laravel 9 Upgrade Guide for further details, and see the below list for more information on changes involved in migrating from Laravel 8.X to Laravel 9.High Impact ChangesUpdating DependenciesFlysystem 3.xSymfony MailerMedium Impact ChangesBelongs To Many firstOrNew, firstOrCreate, and updateOrCreate methods Custom Casts & null Default HTTP Client Timeout PHP Return Types Postgres "Schema" Configuration The assertDeleted Method The lang Directory The password Rule The when / unless Methods Unvalidated Array Keys Laravel 10 PHP Version RequirementsLaravel 10 dropped support of PHP 8.0 and earlier versions, making the minimum required PHP version PHP 8.1 and above. Additionally, Composer 2.2+ is also required for Laravel 10. While upgrading these components to their latest versions to meet the framework's requirements, ensure that "minimum-stability" is set to "stable" in the "composer.json" file.PHP extension requirements may differ. Visit the Laravel 10 Upgrade Guide for further details, and see below for changes to anticipate when upgrading to Laravel 10.High Impact ChangesUpdating Dependencies Updating Minimum Stability Medium Impact ChangesDatabase Expressions Model "Dates" Property Monolog 3 Redis Cache Tags Service Mocking The Language Directory Low Impact ChangesClosure Validation Rule Messages Form Request after Method Public Path Binding Query Exception Constructor Rate Limiter Return Values The Redirect::home Method The Bus::dispatchNow Method The registerPolicies Method ULID Columns Laravel 11 PHP Version RequirementsLaravel 11 requires PHP 8.2 or higher and Composer 2.X. Upgrade these components to their latest versions to meet the framework's requirements, and be aware that PHP extensions may have differing requirements. For further details about upgrading to Laravel 11, view the associated Laravel 11 Guide. See below for changes to anticipate when upgrading.High Impact ChangesUpdating Dependencies Application Structure Floating-Point Types Modifying Columns SQLite Minimum Version Updating SanctumMedium Impact ChangesCarbon 3Password RehashingPer-Second Rate LimitingSpatie Once PackageLow Impact ChangesDoctrine DBAL Removal Eloquent Model casts Method Spatial TypesThe Enumerable Contract The UserProvider Contract The Authenticatable Contract Back to topKeep PHP Supported During Laravel UpgradesAs new Laravel versions require PHP 8.0 or newer, maintaining and modernizing your PHP is critical. However, while keeping PHP applications current sounds great in theory, it is often much more difficult in practice. Upgrades can mean spending significant time and money, and despite the many advantages of using updated versions, upgrading can sometimes be viewed as a distraction from delivering on other business goals.To extend the lifecycle of your Laravel application, Zend by Perforce offers a variety of solutions to support PHP applications, including PHP Long Term Support (LTS), ZendPHP, and ZendHQ.Zend PHP LTSLong term support for EOL PHP versions – such as Zend PHP LTS, which offers support for PHP 7.2, 7.3, 7.4, and 8.0 – allows you to upgrade Laravel PHP applications on your schedule. Teams are able to adequately plan their upgrade process, allocate developer time and other resources, and consider all factors that could impact your upgrade. This is particularly important for complex applications involving many dependencies, custom packages, and/or integrations that are not yet compatible with the latest Laravel version. Upgrading can take substantial work, and LTS services provide the necessary support and extended timeline to ensure that everything functions smoothly. You can stay secure and patched until you're ready to upgrade to a fully supported PHP version. ZendPHP Secure RuntimesIf you are using an EOL Laravel version but your application is well maintained with no security issues or performance degradation, and if the main reason you are pursuing a Laravel upgrade is to stay on a supported PHP version, then ZendPHP is an excellent solution to extend the life of your Laravel application.ZendPHP secure and supported runtimes keep your mission-critical Laravel PHP applications secure against the latest CVEs, providing backported security patches to ensure compliance, safety, and security. It also comes with dedicated 24/7/365 support, making our PHP experts your PHP experts. Upgrade on your schedule, access new PHP versions faster, and provision and deploy at scale – all while allowing your team to focus on developing new features to drive your business.ZendHQZendHQ is the must-have extension for ZendPHP. It is designed to help developers increase application security, performance, and scalability in cases where support has expired, and your application requires a reactive tool to identify bugs, find security issues, and diagnose performance bottlenecks.ZendHQ is an intuitive system consisting of a PHP extension, a system daemon, and an admin user interface. In addition to the above capabilities, it monitors HTTP requests to your server and displays data pertinent to your application, including function timings, HTTP requests and response data, and more. These functionalities are enabled through several features built to support your Laravel PHP application and team:Z-Ray profiles your application, supplies metrics about memory resources, time performance, bottlenecks, application flow, and moreMonitoring detects issues before they become problemsCode Tracing quickly finds and fixes issues in production applications.Pairing ZendHQ and ZendPHP allows you to update and optimize your Laravel PHP applications on your schedule instead of trying to keep pace with community release cadences.Back to topFinal ThoughtsWhen it comes to the PHP ecosystem, failing to stay up to date (whether that's in terms of Laravel versions, PHP versions, or other technologies) can leave your application vulnerable to security threats, limit maintainability, and negatively impact future scalability. Despite these risks, many companies continue to run older or outdated Laravel and PHP versions due to prioritizing new features over technological maintenance, lack of resources, lack of developer knowledge, and other reasons.However, keeping your Laravel PHP applications upgraded and secure is essential to the overall success of your business. That's where Zend can help. Our products and services are trusted by global Fortune 100 companies, and we're ready to support your Laravel PHP applications during upgrades, maintenance, and more.Explore PHP Support OptionsZend makes it easy to maintain and upgrade Laravel PHP applications. Use the links below to learn more about our PHP LTS options or explore how ZendPHP and ZendHQ can fit in your infrastructure.Discover PHP LTS Options Try ZendPHP + ZendHQ FreeAdditional ResourcesOn-Demand Webinar - Modernizing Legacy Web Applications: Strategies for a Seamless JourneyOn-Demand Webinar - Are CMS Ecosystems Keeping Pace With PHP?Whitepaper - Planning Your Next PHP MigrationGuide - PHP Versions: Performance, Security, and Feature ComparisonsBlog - PHP Debugging: Go Beyond Step Debuggers With ZendHQBlog - PHP Upgrades: How to Plan and Execute Your Next UpgradeBlog - PHP Migrations: When Is Migrating the Right Choice?Back to top
Renato Salvatori Senior Professional Services Engineer Renato Salvatori is a full stack senior developer with over twenty years of experience in application development. His expertise covers different programming languages (PHP, JSP, Node.js, React), frameworks (Zend Framework, Laravel, Symfony), containerization, and Pipeline CI/CD processes. He shares his knowledge by teaching courses in PHP and Zend Framework.