こんにちは。コバヤシです。
ついにLaravel6がやってきました!
予想していた8月中では無く9/3のリリースでしたね。
今回は、前回に引き続き5.8から6へのアップグレードを行いたいと思います。
ちなみにLaravel6からはPHP7.2以上が必要になります。
アップグレード
まずcomposer.jsonを書き換えます。
"php": "^7.2", "laravel/framework": "^6.0",
そしてupdate。
composer update
以下のエラーが出て落ちました。。
In cache.php line 91: Call to undefined function str_slug()
6からstr*やarray*等のヘルパーが実装されなくなったのが問題のようです。
5.5からアップグレードしてきた場合は、configにヘルパーの記述が残っているので変更します。
※プログラム内でヘルパーを使用している箇所があったら修正しておきましょう。
config/cache.php
<?php 'prefix' => env('CACHE_PREFIX', str_slug(env('APP_NAME', 'laravel'), '_').'_cache'),
↓ 以下のように変更
<?php use Illuminate\Support\Str; // 先頭に追加 // 修正 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
config/session.php
<?php 'cookie' => env('SESSION_COOKIE', str_slug(env('APP_NAME', 'laravel'), '_').'_session'),
↓ 以下のように変更
<?php use Illuminate\Support\Str; // 先頭に追加 // 修正 'cookie' => env('SESSION_COOKIE', Str::slug(env('APP_NAME', 'laravel'), '_').'_session'),
修正して、念のためupdateします。
composer update
今度は問題無く完了しました。
動作確認
アップグレードが完了したので、実際にアクセスしてチェックしてみます。
おっと、、いきなりトップページでエラーが出ました。
Call to undefined function array_except() at /path/to/storage/framework/views/66f37e4bf52a01fd934ca7fa6b9417bfc28d59dd.php:68
viewのキャッシュでarrayヘルパーが記述されたものが残っているようです。。
キャッシュをクリアします。
php artisan view:clear
これで無事表示されました。 他の箇所も動作的に問題が無さそうです。
laravel-filemanagerを除いては。。。
laravel/helpersのインストール
laravel-filemanager内でstr_singularを使用している箇所があるようです。
ライブラリのアップデートを待つしかないのですが、今回はヘルパーを使えるように
laravel/helpersをインストールして対応します。
※laravel/helpersは、array*やstr*等のヘルパー機能を提供してくれます。
composer require laravel/helpers
これでlaravel-filemanagerも使えるようになりました。
まとめ
やはりヘルパー関数関連で、躓くことが多かったですね。
ライブラリ関係は、これからアップデートして対応していくと思いますので、
そうなったらlaravel/helpersを外したいと思います。
これで取りあえず6になったので、色々試していきますよ!!