Мне интересно, каковы преимущества использования доктрины для создания таких запросов, как:
<?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'));
Действительно ли дополнительные зависимости стоят затрат на производительность? Приведенный выше синтаксис кажется мне более сложным, чем простая строка, содержащая запрос.