◆当ページにはプロモーションが含まれています

Laravel

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

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

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

https://proglearn.com/2020/09/10/laravel-jetstream-%e5%87%84%e3%81%99%e3%81%8e%ef%bc%81%ef%bc%9flaravel8-%e6%b3%a8%e7%9b%ae%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e5%86%85%e5%ae%b9/

  • 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" で指定する方法が削除されています。

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

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

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

https://proglearn.com/2020/09/12/laravel8%e3%81%a7%e3%81%afweb-php%e3%81%ae%e6%9b%b8%e3%81%8d%e6%96%b9%e3%81%8c%e5%a4%89%e3%82%8f%e3%81%a3%e3%81%9f%e3%81%ad%ef%bc%81-laravel8%e6%b3%a8%e7%9b%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%87/

エンジニアにおすすめ転職サイト

マイナビIT AGENT
迷ったらまずはココ。求人数が多いため希望や条件にマッチする求人が見つかる!

レバテックキャリア
担当者のレベルが高い。エンジニア特化で15年の実績がある実績で初回提案での内定率驚異の90%!

JOIN
副業やフリーランスとして高額報酬案件を見つけるならJOIN。未経験者でも案件獲得実績豊富が強み!

\面白いと思ったら/

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

@proglearn
一緒によく読まれている記事

COMMENT

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