4

次のようなクエリを作成するためにドクトリンを使用することの利点は何なのか疑問に思っています:

<?php
// $qb instanceof QueryBuilder

$qb->select('u')
   ->from('User u')
   ->where('u.id = :identifier')
   ->orderBy('u.name ASC');
   ->setParameter('identifier', 100); // Sets :identifier to 100, and thus we will fetch a user with u.id = 100

ここで私が目にする唯一の利点は、PDO を使用して簡単に実行できるデータ サニタイズとパラメーター バインドです。

また別の例:

<?php
// $qb instanceof QueryBuilder

// example8: QueryBuilder port of: "SELECT u FROM User u WHERE u.id = ? OR u.nickname LIKE ? ORDER BY u.surname DESC" using Expr class
$qb->add('select', new Expr\Select(array('u')))
   ->add('from', new Expr\From('User', 'u'))
   ->add('where', $qb->expr()->orX(
       $qb->expr()->eq('u.id', '?1'),
       $qb->expr()->like('u.nickname', '?2')
   ))
   ->add('orderBy', new Expr\OrderBy('u.name', 'ASC'));

余分な依存関係がパフォーマンスコストであることは本当に価値がありますか? 上記の構文は、クエリを含む単純な文字列よりも複雑に思えます。

4

1 に答える 1

0

このように、より構造的です。また、PHP コードから DQL (または SQL) コードを削除することで、見た目が大幅に改善されます。

于 2013-03-13T10:23:03.620 に答える