Skip to content
This repository was archived by the owner on Mar 17, 2026. It is now read-only.

Laravel 10.x Shift#7

Open
mattstauffer wants to merge 15 commits intomainfrom
shift-168674
Open

Laravel 10.x Shift#7
mattstauffer wants to merge 15 commits intomainfrom
shift-168674

Conversation

@mattstauffer
Copy link
Member

This pull request includes the changes for upgrading to Laravel 10.x. Feel free to commit any additional changes to the shift-168674 branch.

Before merging, you need to:

  • Checkout the shift-168674 branch
  • Review all pull request comments for additional changes
  • Run composer update (if the scripts fail, try with --no-scripts)
  • Clear any config, route, or view cache
  • Thoroughly test your application (no tests?, no CI?)

If you need help with your upgrade, check out the Human Shifts.

Shift automatically applies the Laravel coding style - which uses the PSR-12 coding style as a base with some minor additions.

You may customize the code style applied by configuring [Pint](https://laravel.com/docs/pint), [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer), or [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) for your project root.

For more information on customizing the code style applied by Shift, [watch this short video](https://laravelshift.com/videos/shift-code-style).
In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used.
@mattstauffer
Copy link
Member Author

ℹ️ Laravel 9 moved the resources/lang folder to the top level of the project. While Shift automated this change, you may have additional references to the previous folder which need to be updated.

@mattstauffer
Copy link
Member Author

ℹ️ Starting with Laravel 10, the lang folder is no longer included in a default Laravel application. Laravel now recursively merges any customizations with framework defaults.

Shift streamlined your language files by removing options that matched the Laravel defaults and preserving your customizations. If you wish to keep the full set of language, Shift recommends running artisan lang:publish --force to get the latest configuration files from Laravel, then reapplying the customizations Shift streamlined.

@mattstauffer
Copy link
Member Author

❌ Shift could not upgrade the following files since they differed from the default Laravel version. You will need to compare these files against the default Laravel 10 versions and merge any changes:

  • lang/en/validation.php

@mattstauffer
Copy link
Member Author

ℹ️ Laravel added the VITE_APP_NAME environment variable to allow you to customize your application name in frontend components. By default, this uses the value from the APP_NAME environment variable.

Shift added this to your .env files, but you will need to update your frontend components to use this new variable. You may reference the original Breeze PR for examples.

@mattstauffer
Copy link
Member Author

⚠️ Shift upgraded your configuration files by defaulting them and merging your true customizations. These include values which are not changeable through core ENV variables.

You should review this commit for additional customizations or opportunities to use new ENV variables. If you have a lot of customizations, you may undo this commit with git revert 25e7fd0a and make the config file changes manually.

@mattstauffer
Copy link
Member Author

ℹ️ Laravel 10 now verifies hashed values were created by the same hashing algorithm. If your application has hashed values created by different hashing algorithms, you may set the verify option to false in your hashing configuration. For more details, you may review the original PR.

@mattstauffer
Copy link
Member Author

ℹ️ Shift updated your dependencies for Laravel 10. While many of the popular packages are reviewed, you may have to update additional packages in order for your application to be compatible with Laravel 10. Watch dealing with dependencies for tips on handling any Composer issues.

The following dependencies were updated by a major version and may have their own changes. You may check their changelog for any additional upgrade steps.

The following dependencies were not updated by Shift and may be incompatible. If Composer lists one of these packages as a problem, you should check for a newer version.

@mattstauffer
Copy link
Member Author

ℹ️ Shift detected you are running Livewire 2. While this is compatible with Laravel 10, Shift recommends upgrading. Once you have a verified your Laravel upgrade, you may run the Livewire 3.x Shift to upgrade to Livewire 3.

@mattstauffer
Copy link
Member Author

ℹ️ Shift detected your application has a test suite. To allow you to verify the upgrade in isolation, Shift did not bump your testing dependencies for PHPUnit 10. Once you have completed your upgrade, you may run the PHPUnit 10 Shift for free to upgrade your test suite to PHPUnit 10 separately.

@mattstauffer
Copy link
Member Author

ℹ️ Laravel 9 adopted anonymous migrations. Shift automated this change to align with modern Laravel conventions and avoid naming migrations.

@mattstauffer
Copy link
Member Author

ℹ️ Laravel renamed the password_resets table to password_reset_tokens. While an optional change, Shift detected you have a migration for the original table and created a migration to rename the table. You should check for any additional references to the password_resets table and run php artisan migrate to complete your upgrade.

@mattstauffer
Copy link
Member Author

ℹ️ Laravel 10 added PHP type hints to all user-land code included in a new Laravel application. In an effort to modernize your code, Shift added type hints to any method which is used by Laravel.

@mattstauffer
Copy link
Member Author

ℹ️ Now with type hints in your code, defining types within PHP DocBlocks is redundant. Laravel has removed all of the @param and @return tags from its DocBlocks where types are defined with PHP. Similarly, Shift removed these tags from any DocBlock where the code now has equivalent type hints.

@mattstauffer
Copy link
Member Author

ℹ️ Shift understands developers have different preferences when it comes to type hints. All of Shift's automation is done in nice, atomic commits. This makes it easier to undo any of the changes Shift makes.

If you wish to undo the changes relating to type hints, you may run:

  • git revert fe198c7 to revert the DocBlock changes.
  • git revert 28f69f1 to revert the type hints added from DocBlocks.
  • git revert e2ad1b4 to revert the type hints added for Laravel 10.

@mattstauffer
Copy link
Member Author

ℹ️ All of the underlying Symfony components used by Laravel have been upgraded to Symfony 6.2. Shift detected references to Symfony classes within your application. These are most likely type hints and can safely be ignored. If you are using Symfony classes directly or experience issues relating to Symfony, you should review the Symfony change log for any additional changes.

@mattstauffer
Copy link
Member Author

⚠️ Laravel 10 requires Composer 2.2 or higher. You should verify the Composer version in your environments by running composer --version to ensure it meets this new requirement. If necessary, run composer self-update to update Composer.

@mattstauffer
Copy link
Member Author

⚠️ Laravel 10. has reached end of life. It no longer receives bug fixes or security updates. Shift recommends continuing to upgrade to the latest version (Laravel 12.x).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants