Слои приложения в Symfony? Здравствуйте
Как показывает практика, если писать на Symfony опираясь на документацию, фреймворк "подталкивает" пользователя к использованию слоев приложения со своей зоной ответственности. К примеру, общение с бд идет через репозиторий, бизнес-логику чаще всего описывают в модели, дробля на сервисы. Хоть и следовать документации - хорошее дело, пользователи, руководствуясь собственным опытом или той/иной методологией, вольны создавать собственные слои.
У меня возникла необходимость создать следующее:
- Слой, отвечающий за атомарные операции с бд (прим. - save(), delete(), может какой-то цикл с небольшой логикой)
- Разделение команды на инициализацию, и её выполнение. Были идеи для выделения выполнения в отдельный сервис, но что в таком случае делать с output'ом? (Примерно так же как и handler в Messenger компоненте)
Сталкивались ли вы с такими слоями?
Буду признателен за подробный ответ

21 Авг 2019 в 06:59
202 +1
0
Ответы
1

Да, я сталкивался с подобными слоями в Symfony. Действительно, фреймворк предполагает использование слоев приложения для более удобной и структурированной разработки.

Что касается слоя, отвечающего за атомарные операции с базой данных, то его можно легко реализовать через использование репозиториев или сервисов для взаимодействия с базой данных. В вашем случае, вы можете создать отдельный класс, который будет содержать методы для выполнения самых базовых операций с базой данных, таких как сохранение данных (save()), удаление данных (delete()) и прочее.

Что касается разделения команды на инициализацию и выполнение, то здесь также можно использовать подход с созданием отдельных сервисов. Вы можете создать сервис, который будет отвечать за инициализацию команды и возвращать объект, который затем будет передан другому сервису для выполнения этой команды. В случае необходимости работы с output'ом, вы можете передавать соответствующий объект или использовать события для обработки вывода информации.

В целом, в Symphony есть множество способов организации слоев приложения, и вам следует выбрать тот подход, который наиболее удобен и эффективен для вашего проекта. Надеюсь, мой ответ был полезен для вас. Если у вас есть другие вопросы, не стесняйтесь задавать.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир