Я сам не фанат всех этих уроков за 25 минут, потому что даже за час невозможно дать полноценную информацию для того, чтобы можно было закончить разговор на какой-то хорошее ноте. Можно пробежаться галопом по Европе, но смысл?
В первой части мы запустили наш первый Symfony сайт и совсем поверхностно познакомились с тем, как можно создать свой первый контроллер. Контроллеры - это классы или если упростить до минимума - код, который вызывается на действия пользователей на сайте. Он должен получать данные от пользователя, получать запросы и возвращать пользователям результат. Расчеты же обычно делаются в отдельном слое - Бизнес логика, о которой мы поговорим позже.
Прежде чем мы начнем, мне придется все же познакомить вас с третьим слоном – представлением.
Симфония просто обожает доктрину Doctrine, которая является объектно-реляционным проектором. Нет, это не я придумал такое выражение, это в википедии написан такой перевод для выражения Object-Relational Mapping или просто ORM. Чаще всего в интернете можно увидеть как раз сокращение ORM.
С точки зрения работы с базой данных основная заслуга лежит не на фреймворке Symfony, а на сторонней библиотеке Doctrine, с помощью которой можно получать доступ не только к реляционным базам данных MySQL или PostgreSQL, но и NoSQL базе данных MongoDB.
В прошлый раз мы создали метод, который добавляет в базу данных новую категорию, которую пользователь передает через URL. Но печалька в том, что если пользователь загрузит этот URL дважды, то одна и та же категория появиться в базе данных два раза. Не думаю, что на блоге имеет смысл иметь более одной категории с одним и тем же именем.
Некоторые используют сгенерированные в папке src/Entity классы для хранения бизнес логики. Я не являюсь фанатом такого подхода, потому что это все же разные вещи. Сгенерированные классы являются проекциями к объектам базы данных и не должны содержать бизнес логики.
Мы научились добавлять данные и искать и последние две операции, которые осталось изучить, чтобы замкнуть полный круг работы с данным – это редактирование и удаление.
Наверно самая простая тема - удаление данных из базы в Symfony с использованием Doctrine. Мы научились добавлять категории, редактировать, и чтобы завершить цикл операций нужно еще удалить.
Когда мы создавали бизнес модель, то переносили код один-к-одному, что не является идеальным решением. С подобной логикой я сталкиваюсь иногда по работе и в этой работе я хотел указать на этот косяк.