超簡単。Laravel5.5からLaravel6へのバージョンアップ
Laravel5.5からLaravel6へのバージョンアップ
Docker化に伴い、PHP7.4を入れたので折角だしLaravelを6に上げてみました。
本当の理由はPHP7.4にしたらLaravel5.5のメール送信でエラーが発生したからです。
調べるとPHP7.4で修正されたパーツがトリガーとなっている事が判明。
PHPのバージョンを下げるか、Laravelを上げるかの判断の中でLaravelの変更を選択したのでした。
次回の為にアップグレードのポイントをまとめておきます。
基本は composer.json を変更してcomposer update
まず今回の更新は一発で上手くいくほど甘くはありませんでした。
でもね、ちゃんとどこかが悪いか教えてくれるから悩むことはなかったかな。
まず、ググって出てきたサイトの情報を参考にこんな事をやってみます。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0", "php": ">=7.4.5",
"barryvdh/laravel-dompdf": "^0.8.3",
"fideloper/proxy": "~3.3",
"intervention/image": "^2.5",
"laravel/framework": "5.5.*", "laravel/framework": "^6.0*",
"laravel/tinker": "~1.0",
"laravelcollective/html": "~5.0",
"league/csv": "^9.3",
"league/flysystem-sftp": "^1.0",
"mopo922/laravel-treats": "^2.0",
"weidner/goutte": "^1.3"
},
"require-dev": {
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0",
"symfony/thanks": "^1.0"
},
......以下略......
PHPのバージョン変更とlaravel/frameworkの値の変更。
これやって composer update したところ、更新できない。
でもね、うれしいのはなぜ更新できないのかポイントを整理して教えてくれる所。
Problem 1 - The requested package fideloper/proxy ~5.0 exists as fideloper/proxy[1.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.1.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 4.0.0, 4.1.0, 4.2.0, 4.2.1, 4.2.2, 4.3.0, dev-develop, 4.0.x-dev, dev-feature/debugger, dev-master, dev-netmask] but these are rejected by your constraint. Problem 2 - laravelcollective/html v5.5.4 requires illuminate/view 5.5.* -> satisfiable by laravel/framework[v5.5.44], illuminate/view[v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44]. ~~~~~~略~~~~~~
この『Problem』をクリアすれば問題なく更新ができるという至れり尽くせりな仕様。
おかげさまで全く困らずにLaravel6に上げる事が出来ました。
今回指摘された箇所は3か所
- fideloper/proxy": "~3.3" => "~4.3.0"へ変更
- "laravelcollective/html": "~5.0" => "6.0"へ変更
- "phpunit/phpunit": "~6.0" => "~7.0"へ変更
順調に更新されたと思ったのですが、困ったことが発生しました。
Call to undefined function str_slug()でページにアクセスできない。
どのページでも上記エラーが発生してページが表示されない。
https://laravel.com/docs/6.x/upgrade#helpers を参照しましょう。
コマンド一発で解決です。
composer require laravel/helpers
あっさり解決しました。
領収書発行システムのPDF化も問題なし。
MeCabも正常
メール配信もOK
思っていたほどアップグレードによる修正はなさそうです。
まとめ
アップグレードというと面倒なことが出てきそうでしたが、やってみると意外とあっさり&すんなり。
システムに大きな影響がないのであれば更新していた方が良いですね。


