14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

やってみたLaravelチュートリアル②

Last updated at Posted at 2023-09-05

はじめに 🐢

Laravelの教科書という本を見かけたので、
勉強のために、チュートリアルとして頭からやってみました。
その個人的な記録です。

本は 350ページ、12章 ありますが、内容的に
2~10章が手を動かしてやる系ぽいです。

環境構築の第2章は以下で済ませましたので、
やってみたLaravelチュートリアル①

次の第3章、第4章に進みます。

本が手元にあることが前提となっています

Ⅲ.Laravel の仕組み

第3章では、イラストを交えて Laravel のフレームワークの
MVCモデルについて、分かりやすく解説されていました。

1.MVCモデルについて

モデル・ビュー・コントローラに加え、ルーターが入ります。
ルーターは http リクエストの処理への振り分けって感じです。
MVCについては、以下など諸々解説を参照。

教科書ではキャラクターを使って分かりやすく解説してあります。

2.Laravel のディレクトリ構成

image.png
test-project 配下に 11 フォルダがあります。

  1. app
    コントローラやモデルなど、主なコードが入る場所です。
  2. bootstrap
    通常、このディレクトリ内を編集することは無いそうです。
  3. config
    設定用ファイルが入ります。
  4. database
    DB 関連のディレクトリ、ファイルが入ります。
  5. node_modules
    Node のモジュールが入ります。
  6. public
    公開ディレクトリです。
  7. resources
    ビューが入ります。
  8. routes
    ルート設定用のファイルが入ります。
  9. storage
    画像やログなどが入ります。
  10. tests
    PHPUnit などテスト用フレームワークのファイルが入ります。
  11. vendor
    ライブラリ関連。直接編集しません。

app, resources, routes が主役っぽい

Ⅳ.コードを書いてみよう

第4章に入ります。
教科書では ルーター、コントローラ、ビュー、コンポーネント
について、節を立てて解説してあります。

1.ルーター

ルート設定は routes ディレクトリの中にあります。
Breeze を入れると、auth.php が入るそうです。

ルートの設定

見てみると、なるほど!
image.png
use で使うコントローラを読み込んでいます。
ミドルウェアは、コントローラの前後に挟める処理との事。

Route::middleware('guest')->group(
これは、グループ化したルートに対し、ミドルウェアを適用している。
group の中に、対象となるルートが入ってる。
これらに対し、guest を適用しているっぽい。

Route::get の第一引数は、ドメイン以下のURL、
第二引数の配列には、コントローラ名とメソッド名が入る模様。
アドレスとコントローラの紐づけを行い、
それらのルートに対して、一括でミドルウェア:guest を適用している、と。

メソッドチェーンで続く ->name('register') は、
名前付きルートという奴らしい。後でこの名前で呼び出せるとの事。

2.コントローラ

コントローラはコマンドで作るようです。
本に従い、TestController を作ります。

VS Code のターミナルから実行しました。
Docker が落ちていたので、デスクトップ起動しました。
sail も落ちていたので、cd して up しときました。

image.png
app/Http/Controllers/TestController.php が確かにできている!
あとは、後で参照する test メソッドを足しときます。
image.png
そして、対応するビュー test ファイルを resources/views の中に作ります。
test.blade.php ファイルを作り、中に任意のテキストを入れます。

Bladeファイルは .blade.php が拡張子とのこと。

image.png
あとは、教科書に従い、ルート設定を行います。
use 宣言と、ドメイン名/test の get リクエストに対する
コントローラ名とメソッド名を設定すればOK。
image.png
ブラウザで http://localhost/test を叩くと、画面が表示されました。

3.ビュー

すでに上記にて test ビューを作成しました。
次はBlade のディレクティブも使ってみます。

Blade はテンプレートエンジン。
Blade のディレクティブはビューの中で使える構文。

教科書では、ビューの welcome.blade.php に
@for ディレクティブ を追記していました。

教科書通りに追記し、localhost を叩くと以下の画面になりました。
image.png
また、ビューファイル上での変数利用例も示しています。
教科書に従い、記述を入れると。。。
image.png
確かに。

4.コンポーネント

教科書では、見栄えの良いページを作るためのテンプレートと、
部品群である components について解説しています。

また、Tailwind CSS での外見カスタマイズについて触れています。
デザインを改善する際に、またよくよく参照します。

Laravel Vite とコンパイル、ホットリロードについて
章末に記述があります。これも知識として押さえておきます。

まとめ

以上、第3,4章でした。
ここが概念的に一番とっつきにくいところかと思います。
しかし教科書では、イラストや単純な例を重ねて、
体系的に解説されていると思いました👍
分かりやすかったです。

次は、いよいよ5章以降、データ作成とモデルに進んでいきます。

参考

【Laravel】ルーティングのミドルウェアとは何か?使い方を実例で解説
【Laravel】名前付きルートの使い方について
【PHP】Laravelのbladeテンプレートを理解する。

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?