Ecodenl / Woningdossier

Other
5 stars 1 forks source link

Laravel 9.x Shift #1788

Closed pvankouteren closed 1 month ago

pvankouteren commented 2 months ago

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

Before merging, you need to:

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

pvankouteren commented 2 months ago

:information_source: 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.

pvankouteren commented 2 months ago

:warning: Laravel 9 upgraded to Flysystem 3.0 causing the behavior of the Storage facade to change slightly:

For more details, you may review the Flysystem 3.x section of the Upgrade Guide.

pvankouteren commented 2 months ago

:warning: Laravel 9 transitioned from SwiftMailer to Symfony Mailer. While this transition should be relatively seamless and Shift automates any tedious changes, some changes may not reliably be automated.

Dependencies Some mail providers may require an additional dependency. For example, if you are using Mailgun, then you will need to install the symfony/mailgun-mailer package:

composer require symfony/mailgun-mailer symfony/http-client

Updated Return Types The send, html, raw, and plain methods now return an instance of Illuminate\Mail\SentMessage.

Failed Recipients It is no longer possible to retrieve a list of failed recipients after sending a message. Instead, a Symfony\Component\Mailer\Exception\TransportExceptionInterface exception will be thrown if a message fails to send. Instead of relying on retrieving invalid email addresses after sending a message, it is recommend that you validate email addresses before sending the message instead.

For more details on what has changed you may review the Symfony Mailer section of the Upgrade Guide.

pvankouteren commented 2 months ago

:x: 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 9 versions and merge any changes:

pvankouteren commented 2 months ago

:warning: The FILESYSTEM_DRIVER environment variable was renamed to FILESYSTEM_DISK in Laravel 9. Shift attempted to automate this change, but you should review any additional environment configuration and rename this variable.

pvankouteren commented 2 months ago

:warning: 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 934a9408 and make the config file changes manually.

pvankouteren commented 2 months ago

:information_source: The FILESYSTEM_CLOUD environment variable was removed in a later release of Laravel 8. While you may still use the cloud disk, you are encouraged to configure your own disks.

pvankouteren commented 2 months ago

:warning: The token driver for API authentication is no longer available. This driver was not very robust and was removed from the documentation. Laravel now recommends using Sanctum.

If you were using the token driver, you may re-add it within your auth.php configuration file then migrate to Sanctum at your convenience.

pvankouteren commented 2 months ago

:information_source: Shift updated your dependencies for Laravel 9. 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 9. 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.

The following dependencies are now abandoned. You will need to remove or replace them to complete your upgrade.

pvankouteren commented 2 months ago

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

pvankouteren commented 2 months ago

:information_source: Sanctum 3.x added an expires_at column to support expiring tokens. Shift detected you have a migration for this table and created a migration for this new column. Be sure to run php artisan migrate to complete your upgrade.

pvankouteren commented 2 months ago

:warning: Shift detected you are running Laravel Sail. If you have not customized your stack, you may run php artisan sail:install to regenerate the latest docker-compose.yml. Otherwise, you should ensure your stack is running PHP 8.0 or higher.

pvankouteren commented 2 months ago

:information_source: All of the underlying Symfony components used by Laravel have been upgraded to Symfony 6. If you are directly interacting with any Symfony component, you should review the Symfony change log for additional changes.

pvankouteren commented 2 months ago

:warning: The $loop variable is no longer available when iterating over a LazyCollection. Shift detected the $loop variable being used in the following Blade templates. You should review these instances to ensure they are not iterating over a LazyCollection or track your own loop variables.

pvankouteren commented 2 months ago

:information_source: Laravel 9 now uses Vite to build frontend assets. While you may continue to use Laravel Mix, it is no longer the default. If you wish to modernize your application to use Vite, you may run the Vite Converter for free.

pvankouteren commented 2 months ago

:warning: Laravel 9.x has reached end of life. It no longer receives bug fixes or security updates. Shift recommends continuing to upgrade to the latest version (Laravel 11.x).