Мы с вами приступаем к работе с базой данных в Symfony и в этом вводном видео мы рассмотрим некоторые вводные понятия, которые нужно понимать и знать прежде чем приступать к работе с базой данных в фреймворке Symfony.

Давайте для начала познакомимся с таким важным понятием как сущности. 

Первое, что нужно понимать, Symfony не умеет работать с базой данных напрямую. Как же это возможно? В таком продвинутом PHP фреймворке нет возможности работы с базой данных напрямую. 

В Symfony нет каких-то функций, которые обрабатывали бы SQL-запросы и.т.д. 

Какое же решение для этого есть?

Для того, чтобы Symfony умел работать с базой данных в Symfony есть внешняя библиотека, которая называется Doctrine. Именно благодаря этой библиотеке Symfony как раз таки и "общается" с базой данных.

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

Для того, чтобы выполнить какой-то запрос к базе данных: что-то там создать, запросить, изменить или удалить используется так называемый DQL. 

DQL (Doctrine Query Language) - это специальный объектно-ориентированных диалект SQL. 

Синтаксис DQL очень похож на синтаксис SQL в плане создания запросов, но есть и некоторые отличия. Главное отличие в том, что DQL основан на объектно-ориентированном подходе. Каждая запись в базе данных соответствует какому-то объекту.

Подробнее о DQL и Doctrine можно посмотреть на официальном сайте:

https://www.doctrine-project.org

Какая идея этого подхода?

Идея Doctrine в том, что таблица в базе данных = PHP классу = Сущности.

Тут и появляется такое понятие как сущность, с которым приходится чаще всего работать в Symfony. 

Любая таблица в базе данных, которую мы создаем, она является зеркальным отражением какого-то класса, который мы с вами создаем программируя в PHP. С базой данных мы напрямую не общаемся, мы общаемся с классами, с какими-то объектами, которые мы с вами создали.

Эти объекты (классы) для работы с базой данных - они являются сущностями. 

Т.е. создается обычный класс, например, класс "Страница (Page)" (см. видео). У этого класса есть какие-то свойства, методы. Эти свойства, которые мы там создали, они прописываются в базе данных и в ней появляется точно такое же отражение наших классов. 

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

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