技術
2024.2.5(Mon)
Laravel5.8→10.Xまでのバージョンアップ方法まとめ
目次
こんにちは。堀部です。
Laravelのバージョンアップをする機会があったので、備忘のために手順をまとめたいと思います。2023年11月時点の最新バージョンであるLaravel10までの方法をまとめました。何かの参考になれば幸いです。
Laravel5.8 → 6.Xへアップグレード
公式サイトにも アップグレードガイドがありますが、基本的にはcomposer.jsonを書き換えて対応します。
対応前
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.8.*",
"laravel/tinker": "^1.0"
},
対応後
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "^6.0",
"laravel/tinker": "^1.0"
},
「composer update」を実行した後、「php artisan -V」でバージョン確認します。
Laravel6.X → 7.Xへアップグレード
composer.jsonを以下の通り書き換えるのと、Symfony5が変更となっているので対応するようにプログラムを修正します。公式サイトのアップグレードガイドは こちら。
対応前
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "^6.0",
"laravel/tinker": "^1.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^3.0",
"oscarafdev/migrations-generator": "^2.0",
"phpunit/phpunit": "^7.5"
},
対応後
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
"laravel/ui": "2.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"oscarafdev/migrations-generator": "^2.0",
"phpunit/phpunit": "^8.5",
"facade/ignition": "^2.0"
},
Symfony5のアップグレードに伴う修正
app/Exceptions/Handler.phpの「Exception」を「Throwable」に変更します。
// use Exception;
use Throwable;
// public function report(Exception $exception)
public function report(Throwable $exception)
// public function render($request, Exception $exception)
public function render($request, Throwable $exception)
config/session.phpを変更します。
// 'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),
「composer update」を実行した後、「php artisan -V」でバージョン確認します。
Laravel7.X → 8.Xへアップグレード
composer.jsonのみの変更で対応可能です。公式サイトのアップグレードガイドは こちら。
対応前
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
"laravel/ui": "2.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"oscarafdev/migrations-generator": "^2.0",
"phpunit/phpunit": "^8.5",
"facade/ignition": "^2.0"
},
対応後
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "^8.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^5.0",
"oscarafdev/migrations-generator": "^2.0",
"phpunit/phpunit": "^9.0",
"facade/ignition": "^2.0"
},
「composer update」を実行した後、「php artisan -V」でバージョン確認します。
Laravel8.X → 9.Xへアップグレード
composer.json を以下の通り書き換えます。Laravel9.XからはPHP8.0.2以上が必要なため、PHPのバージョンも上げています。公式サイトのアップグレードガイドは こちら。
対応前
"require": {
"php": "^7.1.3",
"laravel/framework": "^8.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^5.0",
"oscarafdev/migrations-generator": "^2.0",
"phpunit/phpunit": "^9.0",
"facade/ignition": "^2.0"
},
対応後
"require": {
"php": "^8.1",
"laravel/framework": "^9.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^6.1",
"phpunit/phpunit": "^9.0",
"spatie/laravel-ignition": "^1.0"
},
fideloper/proxyの更新
fideloper/proxyがある場合、Laravel9では使用できないため削除します。
composer remove fideloper/proxy
app/Http/Middleware/TrustProxies.phpを以下の通り書き換えます。
// use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Middleware\TrustProxies as Middleware;
// protected $headers = Request::HEADER_X_FORWARDED_ALL;
protected $headers =
Request::HEADER_X_FORWARDED_FOR |
Request::HEADER_X_FORWARDED_HOST |
Request::HEADER_X_FORWARDED_PORT |
Request::HEADER_X_FORWARDED_PROTO |
Request::HEADER_X_FORWARDED_AWS_ELB;
「composer update」を実行した後、「php artisan -V」でバージョン確認します。
Laravel9.X → 10.Xへアップグレード
Laravel10からComposer2.2.0以上が必須となっているため、composerのバージョンをあげます。公式サイトのアップグレードガイドは こちら。
composer selfupdate --2
composer.json を以下の通り書き換えます。
対応前
"require": {
"php": "^8.1",
"laravel/framework": "^9.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^6.1",
"phpunit/phpunit": "^9.0",
"spatie/laravel-ignition": "^1.0"
},
対応後
require: {
"php": "^8.1",
"laravel/framework": "^10.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^4.2"
},
require-dev: {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^7.0",
"phpunit/phpunit": "^10.0",
"spatie/laravel-ignition": "^2.0"
},
「composer update」を実行した後、「php artisan -V」でバージョン確認します。
まとめ
いかがでしょうか。
Laravelのバージョンアップはメジャーバージョンを飛び越えてできないため、1つずつ上げていく必要があります。公式サイトにもアップグレードガイドがあるので参考にしてみてください。
《関連記事》
ITエンジニアリング事業部 マネージャー
Horibe
技術ブログを中心に小ネタを書いています。たまにはライフスタイルも書いてみようかな。
MOST VIEWED ARTICLES


