IT-Q

Eloquent とは何ですか。

テーブルの1行を PHP のオブジェクトとして扱う ORM です。SQL を書かずに済む代わりに、1行の裏で何本クエリが出ているかが見えなくなります。N+1 が起きる原因もここにあります。

面接官が見ているのはORM という概念を理解しているか。

よくある答えと、面談でどう見られるか

  • テーブルの1行を PHP のオブジェクトとして扱えるようにする ORM
    その通りです。SQL を直接書かずに DB を操作できる代わりに、裏で何本クエリが出ているかが見えにくくなります。
  • Laravel のテンプレートエンジン
    それは Blade です。Eloquent は DB を扱う層です。
  • Laravel のコマンドライン実行ツール
    それは artisan です。
  • PHP の標準ライブラリに含まれる DB 接続機能
    PHP 標準は PDO です。Eloquent は Laravel が提供するその上位レイヤーです。

模範解答

ORM(Object-Relational Mapper)です。テーブルの1行を PHP のオブジェクトとして扱えるようにし、$user->posts のような書き方でリレーションをたどれます。SQL を書かずに済む代わりに、1行の記述の裏で何本クエリが発行されているかが見えにくくなります。N+1 が起きるのもこの見えにくさが原因です。