tighten / laraveldrivers

List all third-party Laravel drivers
https://laraveldrivers.com/
9 stars 0 forks source link

Laravel 8.x Shift #20

Closed rissajackson closed 3 years ago

rissajackson commented 3 years ago

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

Before merging, you need to:

If you need help with your upgrade, check out the Human Shifts. You may also join the Shifty Coders Slack workspace to level-up your Laravel skills.

rissajackson commented 3 years ago

:information_source: Laravel 8 introduced class based factories. Shift automated this change. However, if you were using a community package for factories or other custom code, you should review your factories for additional changes.

If you encounter an issue, you may revert this commit and temporarily install the laravel/legacy-factories package. You may then automate the conversion to class based factories using the Shift Workbench.

rissajackson commented 3 years ago

:information_source: Laravel 8 added a uuid column to the failed_jobs table to support the new job batching features.

Shift attempted to add this migration, but did not find the original migration for the failed_jobs table. If your application is using the failed_jobs table, you may generate a custom migration for this column by running:

php artisan make:migration AddUuidToFailedJobsTable

Then copy and paste the contents from Shift's AddUuidToFailedJobsTable class to add the uuid column and generate UUIDs for your existing failed jobs.

rissajackson commented 3 years ago

:information_source: Laravel 8 added new ENV variables for AWS_USE_PATH_STYLE_ENDPOINT, FILESYSTEM_DRIVER LOG_LEVEL. While these are defaulted within their respective configuration file, you may take this opportunity to set them accordingly for your environments.

rissajackson commented 3 years ago

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

Watch dealing with dependencies for tips on handling package incompatibilities.

rissajackson commented 3 years ago

:x: Shift detected Vue components within your resources folder. Laravel Mix 6 extracted Vue support into its own feature flag.

You should update your webpack.mix.js and append the new mix.vue() call when building any Vue components. For example:

mix.js('resources/js/app.js', 'public/js').vue();
rissajackson commented 3 years ago

:warning: Shift upgraded your NPM dependencies and scripts for Laravel Mix 6. You will need to run npm install locally to ensure your dependencies are up-to-date and compatible.

If you encounter any issues, be sure you have the latest LTS or stable version of Node installed. If the problem persists, review the Update to Mix 6 docs for any additional steps.

rissajackson commented 3 years ago

:warning: Laravel 8 now requires PHPUnit 9 which made some configuration changes to its config file. You may automate these changes by running vendor/bin/phpunit --migrate-configuration or comparing your phpunit.xml to the Laravel 8 version and merging any changes.

rissajackson commented 3 years ago

:information_source: Laravel 8 reintroduced the app/Models folder by default. This is an optional change. Laravel and the artisan commands will automatically detect if you are using the app/Models folder or not.

If you wish to modernize your application to use the app/Models folder, you may run the Namespace Models Shift for free.

rissajackson commented 3 years ago

:information_source: Laravel 8 supports running your PHPUnit tests in parallel. Depending on your system, this may decrease run times as much as 70%.

To run your tests in parallel, you may use the php artisan test --parallel command, or use the underlying vendor/bin/paratest runner.

rissajackson commented 3 years ago

:warning: Shift detected you are using a Laravel package like Horizon or Nova which may need to have its published assets regenerated after upgrading. Be sure to use artisan to republish these assets as well as php artisan view:clear to avoid any errors.

rissajackson commented 3 years ago

:tada: Congratulations, you're now running the latest version of Laravel!

Next, you may optionally run the following Shifts to ensure your application is fully upgraded, adopts the latest Laravel conventions, and easier to maintain in the future:

You may also use the Shift Workbench to automate common tasks for maintaining your Laravel and PHP applications.

Note: Stay upgraded forever, with all of these Shifts and Workbench access included, by subscribing to a Shifty Plan.