色々あるとどれ使うか悩む。
Laravel DBの操作は以下の3種類。
Laravel でデータベースを操作するには、
・DBクラス
・DBクラスのクエリビルダ
・Modelクラスの Eloquent ORM上記3つのうち、どれかを使用しますが、
DBクラス
- ほぼ、素のSQL文が書ける。
クエリビルダ
- SQL文は書かないけど、それに近い表現でphpコーディングできる。
- メソッドチェーンが書ける。
Eloquent ORM
- テーブルをphpのクラスとして操作できる
- DBが変わってもLaravel側の記述(phpでコーディングした内容)は変わらない
どれ使うか
DBクラスだと、今までフレームワーク使わず素のphpだけ使ってきてた場合に移行しやすそう。反面あまりスマートじゃない気がする。しかしパフォーマンスは一番いい(はず)。
クエリビルダは直感的に使えそうだし、スピードもそこそこ速いらしい。記述量が多くなるのがちょっとアレだけど、個人サービスならこれがいいかも。
Eloquentは一番ドヤァ感が出せる気がする。しかし先の引用先にも記述されているが、クエリビルダとEloquentのどちらを取るかは迷うところらしい。
クエリビルダとEloquentのどちらかを使って、SQLを直接きじゅつしなければならない(記述したほうがコード全体で見ても良い)という感じになるかな。
クエリビルダとEloquentのどちらを使うか?についてはこちらのqiita記事(【Laravel】クエリビルダとORMの違い)とか見るとやっぱEloquentのほうがいいかぁという気になってくるなー。
コメント