Laravel

Laravel8ではweb.phpの書き方が変わったね! – Laravel8注目アップデート その2

みなさん、こんにちは。どんぶラッコです。

今月発表されたLaravel8を触っています。エンジニア仲間と話していますが、かなり便利になっていますね!

  • Modelファイルを生成すると App/Models内に配置されるようになった
  • factoryの記法がクラス記法に変わった

など、大幅なアップデート部分をご紹介しましたが、この他にも「あ、ここ変わったんだ!」と思った部分があったのでご紹介したいと思います!

どんぶラッコ
どんぶラッコ
中には、Laravel7の時点で実装されていた記法もありますが、、便利なのでご紹介しちゃいますね←

Seeder に 名前空間が追加された

Factoryがクラス化されたことは先ほどの記事で述べた通りですが、それと同時に Factory, Seederに名前空間を付与しないと動作しなくなりました。

どんぶラッコ
どんぶラッコ
Laravel8 で php artisan make:seeder … で作れば書いてあるので心配ないでね!
どんぶラッコ
どんぶラッコ
この影響があるのは、Laravel7以前に書いたファイルをLaravel8に持ってくる場合です。

旧バージョンからファイルを持ってくる場合、それぞれに名前空間を付与することを忘れないでください!

名無しさん
名無しさん
Factoryの場合はクラス記法に直さなきゃいけないから全て書き直しだね
どんぶラッコ
どんぶラッコ
昔のfactoryを使えるパッケージもあるからそっちの利用も検討してみましょう!↓のコマンドでインストールできますよ
composer require laravel/legacy-factories

web.phpRouteの書き方

Controllerでルートを指定する場合、今まではこのように文字列で指定していたと思います。

Route::get('/dashboard', 'DashboardController@index')->name('dashboard');

でもそれだと動きません。

Laravel8ではこのような書き方に変更になりました。

use App\Http\Controllers\DashboardController;
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
どんぶラッコ
どんぶラッコ
文字列じゃなくなってる!

実はこの記法はLaravel7の時点でも紹介されていました。

それがLaravel8になって "HogeController@index" で指定する方法が削除されています。

どんぶラッコ
どんぶラッコ
確かに文字列の指定って違和感ありましたもんね。納得です。

いかがだったでしょうか?みなさんの気づきも教えてください!

追記:そのほかのアップデート情報もまとめました!

ABOUT ME
どんぶラッコ
ECコンサルタント、システムエンジニアを経て、quintet株式会社CTOに就任。普段はNuxt.jsやLaravelを使用しています。

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn
RELATED POST

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です