Я думаю, что всегда лучше создать QueryBuilder
(или просто написать запрос DQL), чтобы получить свои результаты.
Когда вы получаете все свои объекты с помощью вызова getDoctrine()->findAll()
, создается объект PHP, и его значения устанавливаются для каждого результата. Тогда ваш PHP-скрипт (который, конечно, медленнее, чем база данных) будет хранить только интересные объекты, у вас будет много garbadge .
Когда вы используете QueryBuilder
, база данных оптимизирует обработку вашего запроса и возвращает только интересные объекты. Вы избегаете большого количества экземпляров объектов и не должны фильтровать результаты с помощью PHP.