2023年5月よりSAMURAI TERAKOYAというオンラインプログラミング学習サービス(侍エンジニア)で勉強しています。
PHP入門編の学習が一通り終わったので、今日から基礎編のLaravelに関する学習に入りました。
1章 Laravelの概要を学ぼう
フレームワークはMVC(モデル・ビュー・コントローラ)が大事と聞いたことがある。
パスも含めて覚えておこう…
2章 Laravelの開発環境を構築しよう #1
PHP用のパッケージ管理システム「COMPOSER」のインストールを完了し、バージョンの確認も終了。
フレームワークLaravelにはComposer, Node.js, npmの3種の神器が必要
3章 Laravelの開発環境を構築しよう #2
この章ではフレームワークLaravelの3種の神器(勝手にそう考えている)の一つNode.jsのインストールを行いました。
SAMURAI TERAKOYAの手順に従い、インストールを行いバージョン確認をしましたが以下のメッセージが表示されました。
とりあえずvisual Studio Codeを再起動し、同じコマンドをしたところバージョン確認が無事できました。
確認したバージョンは以下の通り。
ここまでの章は、ほぼインストールだけで完了。
次章からは1章で紹介されたMVC(モデル・ビュー・コントローラ)についてやるらしいぞ!
4章 CRUD(クラッド)とMVCモデルについて学ぼう
この章は覚えることが多すぎる…
MVCモデルは慣れるまでに時間を要しそうな気が。
あとMVCモデルというから3つを理解するだけで良いかと思ってたが、MVCのほかにR(ルーティング)とD(データベース)の存在あると理解。
ユーザー(クライアント)のリクエストからレスポンスまでの流れ
流れ | MVC+R+D | フォルダパス |
---|---|---|
ユーザーからリクエストがきた! | ||
①リクエスト | ||
R:ルーティング | routes/web.php | |
②コントローラの選択 | ||
C:コントローラ | app/Http/Controllers | |
③処理の指示 | ||
M:モデル | app/Modesls | |
④データ取得 | ||
D:データベース | ||
⑤データ取得(戻り) | ||
M:モデル | app/Modesls | |
⑥結果の返却 | ||
C:コントローラ | app/Http/Controllers | |
⑦ビューの呼び出し | ||
V:ビュー | resources/veiws | |
⑧レスポンス(ページの表示) | ||
ユーザーにレスポンスが返ってきた! |
ビュー(View)に関して
ビューを新規作成するコマンドは存在しないのでresources/viewsフォルダの中に自分でファイルを作成すること。
その際のファイル名は〇〇〇.blade.phpとする。
bladeってなんだ!
Laravelにテンプレートエンジンが標準搭載されているせいで「Blade」をビューのファイル名にbladeってつける必要があるのね。
※テンプレートエンジンとは簡単にいえば、PHPやRubyなどのサーバーサイド言語とHTMLを合体させてビューを出力してくれる仕組み
その他にも、PHPの構文をHTMLに組み込むためにif文やforeach文には@をつけたり、{{
と}}
で囲んだりする。
全然、ピンとこないのでコード作成のときに意識しよう
ビューのファイル名の一般的なつけ方
一覧ページ:index.blade.php
詳細ページ:show.blade.php
作成ページ:create.blade.php
編集ページ:edit.blade.php
コントローラ(Controller)に関して
コントローラはモデルとビューを制御する。これがMVCの醍醐味なんですかね…
また、コントローラーはコマンド
「php artisan make:controller コントローラ名」
で作成できる。とあるが何のことだか…
何をコントロールするんだ?
ルーティング(Routing)に関して
リクエストに対してのルーティングをする。
LaravelにおけるMVCの図をみるとコントローラーのルーティングを行っているようなので、コントローラーの選定をするのがルーティングなのかな…というイメージを持っておきます。
あとはルートURL(/)にPostControllerの「index」アクションを割り当てる場合は以下のように記述するらしい…
Route::get('/', [PostController::class, 'index']);
感想
4章は情報量も多く、覚えるのがかなりしんどい。
そもそもMVCって何?となったときは4章を確認してみることにする。
もう飲んじゃったんで今日は終了!