はじめに 🐢
Laravelの教科書という本を見かけたので、
勉強のために、チュートリアルとして頭からやってみました。
その個人的な記録です。
本は 350ページ、12章 ありますが、内容的に
2~10章が手を動かしてやる系ぽいです。
環境構築の第2章は以下で済ませましたので、
⇒ やってみたLaravelチュートリアル①
次の第3章、第4章に進みます。
本が手元にあることが前提となっています
Ⅲ.Laravel の仕組み
第3章では、イラストを交えて Laravel のフレームワークの
MVCモデルについて、分かりやすく解説されていました。
1.MVCモデルについて
モデル・ビュー・コントローラに加え、ルーターが入ります。
ルーターは http リクエストの処理への振り分けって感じです。
MVCについては、以下など諸々解説を参照。
教科書ではキャラクターを使って分かりやすく解説してあります。
2.Laravel のディレクトリ構成
test-project 配下に 11 フォルダがあります。
- app
コントローラやモデルなど、主なコードが入る場所です。 - bootstrap
通常、このディレクトリ内を編集することは無いそうです。 - config
設定用ファイルが入ります。 - database
DB 関連のディレクトリ、ファイルが入ります。 - node_modules
Node のモジュールが入ります。 - public
公開ディレクトリです。 - resources
ビューが入ります。 - routes
ルート設定用のファイルが入ります。 - storage
画像やログなどが入ります。 - tests
PHPUnit などテスト用フレームワークのファイルが入ります。 - vendor
ライブラリ関連。直接編集しません。
app, resources, routes が主役っぽい
Ⅳ.コードを書いてみよう
第4章に入ります。
教科書では ルーター、コントローラ、ビュー、コンポーネント
について、節を立てて解説してあります。
1.ルーター
ルート設定は routes ディレクトリの中にあります。
Breeze を入れると、auth.php が入るそうです。
ルートの設定
見てみると、なるほど!
use で使うコントローラを読み込んでいます。
ミドルウェアは、コントローラの前後に挟める処理との事。
Route::middleware('guest')->group(
これは、グループ化したルートに対し、ミドルウェアを適用している。
group の中に、対象となるルートが入ってる。
これらに対し、guest を適用しているっぽい。
Route::get の第一引数は、ドメイン以下のURL、
第二引数の配列には、コントローラ名とメソッド名が入る模様。
アドレスとコントローラの紐づけを行い、
それらのルートに対して、一括でミドルウェア:guest を適用している、と。
メソッドチェーンで続く ->name('register') は、
名前付きルートという奴らしい。後でこの名前で呼び出せるとの事。
2.コントローラ
コントローラはコマンドで作るようです。
本に従い、TestController を作ります。
VS Code のターミナルから実行しました。
Docker が落ちていたので、デスクトップ起動しました。
sail も落ちていたので、cd して up しときました。
app/Http/Controllers/TestController.php が確かにできている!
あとは、後で参照する test メソッドを足しときます。
そして、対応するビュー test ファイルを resources/views の中に作ります。
test.blade.php ファイルを作り、中に任意のテキストを入れます。
Bladeファイルは .blade.php が拡張子とのこと。
あとは、教科書に従い、ルート設定を行います。
use 宣言と、ドメイン名/test の get リクエストに対する
コントローラ名とメソッド名を設定すればOK。
ブラウザで http://localhost/test を叩くと、画面が表示されました。
3.ビュー
すでに上記にて test ビューを作成しました。
次はBlade のディレクティブも使ってみます。
Blade はテンプレートエンジン。
Blade のディレクティブはビューの中で使える構文。
教科書では、ビューの welcome.blade.php に
@for ディレクティブ を追記していました。
教科書通りに追記し、localhost を叩くと以下の画面になりました。
また、ビューファイル上での変数利用例も示しています。
教科書に従い、記述を入れると。。。
確かに。
4.コンポーネント
教科書では、見栄えの良いページを作るためのテンプレートと、
部品群である components について解説しています。
また、Tailwind CSS での外見カスタマイズについて触れています。
デザインを改善する際に、またよくよく参照します。
Laravel Vite とコンパイル、ホットリロードについて
章末に記述があります。これも知識として押さえておきます。
まとめ
以上、第3,4章でした。
ここが概念的に一番とっつきにくいところかと思います。
しかし教科書では、イラストや単純な例を重ねて、
体系的に解説されていると思いました👍
分かりやすかったです。
次は、いよいよ5章以降、データ作成とモデルに進んでいきます。
参考
【Laravel】ルーティングのミドルウェアとは何か?使い方を実例で解説
【Laravel】名前付きルートの使い方について
【PHP】Laravelのbladeテンプレートを理解する。