Рано или поздно, разрабатывая проект на Symfony приходится столкнуться с работой с базой данных. Чтобы что-то получить из базы данных, добавить, удалить, … нам нужно использовать какие-то инструменты для общения с этой базой данных. 

Это материал об одном из таких инструментов, который называется Query Builder. Перевести это можно как "строитель запросов". С помощью этого инструмента можно общаться с базой данных, которая используется в нашем проекте. 

В этой серии материалов мы посмотрим несколько практических примеров, как можно использовать этот сервис в своей работе для того, чтобы легко общаться с базой данных. 

По умолчанию, общаться с базой данных, если это SQL база данных, можно с помощью специальных SQL запросов. Например,

SELECT * FROM …

UPDATE …

DELETE …

INSERT …

Но, согласитесь, что такие запросы несколько сложно читаются и воспринимаются. 

И такой момент, когда мы пишим какие-то SQL запросы внутри php-кода - это не совсем хорошо. У нас идет смешивание разных языков программирования в одной среде. SQL синтаксиса, по сути, не должно быть в PHP-файле. 

Это плохо тем, что мы зависим от той конкретной версии базы данных, которую мы с вами используем и от производителя базы данных. Если что-то поменяется, то нужно искать все места вхождения этого SQL кода и адаптировать эти запросы. 

Это не очень универсальное решение. 

Query builder - это инструмент, который позволяет значительно упростить работу с базой данных, для того, чтобы мы могли писать запросы к этой базе данных с помощью специального синтаксиса и не зависеть от какой-то конкретной базы данных. 

Библиотека Doctrine позволяет нам работать с таблицами в базе данных в виде объектов. Т.е. мы получаем некое отражение нашей базы данных в виде объектной структуры.

И как раз в этой библиотеке Doctrine есть специальный инструмент, который и называется Query Builder. См. видео, чтобы посмотреть, как выглядят запросы в Query Builder.

С помощью ООП подхода мы можем общаться с базой данных в PHP коде в виде объектов. 

Это значительно упрощает работу с базой данных и позволяет нам писать универсальный код, который будет работать с любой базой данных, даже если она изменится по ходу разработки проекта.

Это не конкретный SQL синтаксис и команды, а построение этих команд возложено на Query Builder. Мы лишь работаем с php кодом. 

Вот такой полезный инструмент. В этой серии видео мы будем учиться работать с этим инструментом, что он умеет делать и.т.д. Давайте будем приступать.