サイト管理人Blog

cloudfreeで「さぁ始めましょう♪」

Laravelを少し触っての感想(小規模サイト構築向け)

2024-01-03 記載
概要 : Laravelを少し触っての感想(小規模サイト構築向け)
Keyword : Laravel, MVCのバランス

掲示板システムを作っただけですが、現時点でのLaravelを少し触っての感想をまとめてみたいと思います。

●nullable と default あたりが、やや謎
Modelの定義、ヌル許可->nullable() と デフォルト値->default(‘default_value’)
の設定、これに”空文字の更新がからんで、null系のエラーに少し悩まされました。
$request->input(‘colName’)がnullならデフォルト値を使ってほしいのですが、使ってくれなくて、結局、
$lv_table->colName = $request->input(‘colName’) ?? ‘default_value’;
とnull合体演算子を使うことでnull系のエラーは消えましたが、それならModelの->nullable()とか->default(‘default_value’)は一切省きますね、となって、そうしました。
結果、Modelはシンプルになったのでよしとし、これを今後マイLaravel流とします。

●Eloquentは便利そうですが覚えてられないので
SELECTしたレコードをオブジェクトにマッピングしてくれるところですが、かなり便利です。ですが覚えてられないので以下。
$sql=’SELECT * FROM lv_table WHERE id=777′;
foreach(DB::select($sql) as $lv_table) {
}
DB::select() がデータベースに通用するSQLなんでもかんでも投げれて最強です。これ一本でよろしいです、ということで今後マイLaravel流とします。
ちょっと不便だったのは、SQLで自己結合させた場合、
lv_table AS t1 …JOIN lv_table AS t2 としても、カラム名が t1.colName とかt1_colName にはなってくれず、連想配列内でt1カラムはt2カラムに上書きされてしまうことに。これは、t1カラムをすべて AS t1_colName と書けばすむこと。まぁそこは妥協してもよしです。

●Viewで@ディレクティブを多用すべきかどうか
これはLaravelに限らずプログラミング全体で言えることで、つまりはトレードオフの葛藤なわけですが。
Viewで使える@ディレクティブが一通り揃っているおかげで、かなりロジックを入れ込んでしまえます。気づけば1ファイルのViewでCRUDがこなせて、つられてControllerも1ファイル。可読性は明らかに落ちました。
とはいえ似たり寄ったりなロジックをあちこちに書いていない分、生産性や保守性は向上していて、悪いことではないです。どちらを選ぶかの問題。
小規模システムで開発者が少人数(一人)なら、Viewで@ディレクティブ多用もありかな、と考えます。
Controllerで判定フラグを設定して、Viewは判定フラグを見るだけのロジックで処理を振り分けて多様なモードをこなす。その流れを今後マイLaravel流とします。

また学習をすすめれば変わってくるかと思いますが今しか書けない今の感想ということで。

投稿へのコメントは コチラ(掲示板) へお願いします。

サイト管理人Blog