Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Laravel 6.x Shift #18

Open
wants to merge 9 commits into
base: production
Choose a base branch
from
Open

Laravel 6.x Shift #18

wants to merge 9 commits into from

Conversation

christophrumpel
Copy link
Owner

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

Before merging, you need to:

  • Checkout the shift-28262 branch
  • Review all pull request comments for additional changes
  • Update your dependencies for Laravel 6
  • Run composer update (if the scripts fail, add --no-scripts)
  • Thoroughly test your application (no tests?)

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.

The Laravel framework adopts the PSR-2 coding style with some additions.
Laravel apps *should* adopt this coding style as well.

However, Shift allows you to customize the adopted coding style by
adding your own [PHP CS Fixer][1] `.php_cs` config to your project.

You may use [Shift's .php_cs][2] file as a base.

[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200
Laravel recommends using the `Str` and `Arr` class methods directly instead of the respective helper functions. These helper functions are [deprecated in Laravel 5.8][1] and will be removed in a future version.

[1]: laravel/framework#26898
In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them so you can review the commit diff for
changes. Moving forward, you should use ENV variables or create a
separate config file to allow the core config files to remain
automatically upgradeable.
From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:

- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`

[1]: https://phpunit.de/announcements/phpunit-8.html
@christophrumpel
Copy link
Owner 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 6 versions and merge any changes:

  • app/Http/Kernel.php

@christophrumpel
Copy link
Owner Author

⚠️ Since you are upgrading from an older version of Laravel, Shift defaulted your customized configuration files to make future Shifts smoother. This was done in a separate commit so you may easily review and backfill your customizations once you are running the latest version.

  • config/filesystems.php
  • config/services.php

@christophrumpel
Copy link
Owner Author

ℹ️ Laravel 6 changed the default Redis client from predis to phpredis. You may keep using predis by setting REDIS_CLIENT=predis for your environment.

However, if possible, consider switching to phpredis to gain the performance of its PHP extension and avoid using the deprecated predis dependency which will be removed in Laravel 7.0.

@christophrumpel
Copy link
Owner Author

ℹ️ Shift updated your dependencies for Laravel 6. 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 6.

Watch dealing with dependencies for tips on handling package incompatibilities.

@christophrumpel
Copy link
Owner Author

ℹ️ Laravel 6 now requires Carbon 2. While Shift reviewed your application for common breaking changes, you may want to review the Carbon 2 migration notes for additional changes.

@christophrumpel
Copy link
Owner Author

⚠️ Previous versions of Laravel would bind parameters passed to the URL helper methods as placeholder values even if the names mismatched. In Laravel 6, named parameters not matching placeholders are attached to the query string instead.

Shift detected the following route() and action() calls passing named parameters you should review to ensure they match the route placeholder name.

  • resources/views/partials/blog-list.blade.php

@christophrumpel
Copy link
Owner Author

ℹ️ Laravel 6 made performance optimizations for integer key types. If you are using a string as your model's primary key, you may set the $keyType property on your model.

/**
 * The "type" of the primary key ID.
 *
 * @var string
 */
protected $keyType = 'string';

@christophrumpel
Copy link
Owner Author

ℹ️ The mandrill and sparkpost mail drivers, as well as the rackspace storage driver were removed in Laravel 6. If you were using these drivers, you may adopt a community maintained package which provides the driver.

@christophrumpel
Copy link
Owner Author

ℹ️ Previous versions of Laravel would retry jobs indefinitely. Beginning with Laravel 6, the php artisan queue:work now tries a job one time by default. If you want to force jobs to be tried indefinitely, you may pass the --tries=0 option.

@christophrumpel
Copy link
Owner Author

ℹ️ Shift noticed you have additional namespaces in your application. You should consider using the Consolidate Namespaces Shift to simplify your namespaces into the default Laravel App namespace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants