Shift with red gradient lettering

Upgrade Laravel 9.x to Laravel 10.x

The Laravel 10.x Shift automates the upgrade of your Laravel application from Laravel 9.x to Laravel 10.x. Using the Laravel 10.x Shift to automatically upgrade your Laravel application has an estimated time savings of 2 hours.

While Laravel 10.x still receives bug fixes until August 6th, 2024 and security fixes until February 4th, 2025, it is no longer the latest version of Laravel. As such, Shift recommends continuing your upgrade to the latest stable release of Laravel.

Screenshot of a pull request with automated changes from the Laravel 10.x Shift

Watch a demo

Requirements

  • A Laravel application running Laravel 9.x.
  • A server running PHP 8.1 or higher.

Core Upgrades

The Laravel 10.x Shift automates many of the upgrades listed in the Laravel Upgrade Guide, including:

  • Upgrading changes within the core Laravel project files.
  • Stubbing new methods for interface changes.
  • Converting the deprecated $dates property to $casts.
  • Adding PHP type hints to your Laravel application.
  • Removing redundant typing within PHP DocBlocks.
  • Detecting deprecated code within your application code.
  • Updating core dependencies for Laravel 10 and PHP 8.1.

Additional Upgrades

In addition to the Core Upgrades, the Laravel 10.x Shift performs additional upgrades beyond those listed in the Laravel Upgrade Guide, including:

  • Applying your code style.
  • Modernizing PHP syntax, such as short arrays and the null safe operator.
  • Converting to anonymous migrations.
  • Using class based and tuple-syntax routes.
  • Converting Faker property access to method calls.
  • Automating changes required for PHPUnit 9.
  • Updating config files to their Laravel 10 versions.
  • Bumping your dependencies for popular packages.

Manual Upgrades

There are some upgrades the Laravel 10.x Shift can not perform automatically. When Shift detects these it adds a detailed comment to the Pull Request to guide any additional steps you may need to do manually.

While Shift attempts to detect and automate the updates for popular packages, you may need to update some of your dependencies manually. Always review the changelog for your dependencies for any additional changes.

Sign in with any of the following services to connect Shift with your Laravel project.


Don't use one of these services?

Temporarily push your project to a free, private repository on one of these cloud-based services or upgrade your project locally with Shift for Docker.