自分の状況
初めてのフレームワーク学習ということでLaravelに触れてみた。これまでにフレームワークの学習経験はなく、MVCモデルとは、といった部分から開始。簡単な記事投稿サイトを作りながら学んだ。
雑感と注意点
htmlspecialchars()
というタイプしづらい文字列を書かなくてよいとか、@csrf
とするだけで対策してくれるとか、その便利さを感じることができた反面、その便利さが初心者にとって学習上の障壁になる面もあると感じた。
具体的にはImplicit Binding(暗黙の結合)の仕組みを学ぶ際に直面した問題である。Implicit Bindingは「ルーティングのパラメータ名とコントローラー内の関数の引数を同じにして型を指定すると、idが対応するインスタンスを渡してくれる」というものである(と理解している)。この挙動についても即座に理解できるようなシンプルなものではないが、その挙動を理解した後に、「なぜそうなっているのか」や「どういった処理がされているのか」といった疑問を持ってしまうと大変である。おそらく「そうなっているから」と答えるしかないと思われるが、詳しい人からそう言われなければ初心者はずっと頭を悩ませてしまうことになりかねない。
プログラミング学習全般に言えることだが、フレームワーク学習においては特に疑問を抱えたまま進める姿勢が重要なのかもしれない。
余談
ログイン機能を実装するためにLaravel Breezeが必要になり、インストールしようとしたが、
composer require laravel/breeze --dev
の後に
php artisan breeze:install
を入力してもWARN
やERROR
となって全然進まずに苦労することがあった。
いろいろな方法を試したが、結局はnode.jsのバージョンが古かっただけであった。特に初心者は、基本的なことに気を配るのを忘れてはならないということだろう。