doctrineのQueryBuilderを使用すると
sqlを直接書くのと比べて、自分的に何がうれしいのかを考えてみました。
doctrineしか使用したことがないので、他でも同じかもしれません。
#QueryBuilderでうれしいこと
少し違ったものを作るのが簡単です
作成済みのものを使用して、少し違ったものを作るのが便利です。
例えば、where条件などは共通のままにしたいが、取得する値は変えたい場合に便利です。
sqlの場合
select name from customer where id = 1;
上記をそのまま利用して、下記を作るのはどうしようかと思います。
文字の置換などでしょうか。。。
select company from customer where id = 1;
QueryBuilderの場合
$qb
->select('c.name')
->where('c.id = 1');
上記の$qbを利用して、下記のようにselect()でselect定義を上書きすれば完成です。
where条件もそのまま残ります。
$qb
->select('c.company');
順番がめちゃくちゃでも良い
sql要素の順番がめちゃくちゃでも定義できるので、コードの書きやすさに合わせられます。
例えば、where条件だけを先に設定しておいて、
$qb
->where('c.id = 1')
->andWhere()
...
あとでselectを追加したりできます。
$qb
->select('c.name')