Symfony 4. Для написания логики используйте сервисы?Что это за сервисы? И где про них можно почитать?
Всем привет, прислали тестовое задание, все вроде понятно что надо делать, но не понятно одна штука
Фраза "Для написания логики используйте сервисы." Что за сервисы ? С Symfony только вот вчера познакомился.
Это означает что бизнес логику люди пишут в сервисах, а сущности используют как структуры данных. Подход называется Anemic Domain Model.
Symfony тут не причем. Вообще.
Сервисы не имеют отношение конкретно к симфони, они являются правилом хорошего тона для реализации бизнес-логики (получение данных) или служебных задач (какой-нибудь парсинг, кэширование и проч).
Сервисы не имеют отношение конкретно к симфони, они являются правилом хорошего тона
Я вот хорошим тоном считаю написание логики в сущностях, и при грамотном проектировании этот подход намного лучше и проще для понимания в крупных приложениях.
А вы? Или решили просто накинуть, чтобы разразиться аргументами, которыми вас исправно кормят в чатах? В моем сообщении подразумевался только пример того, чего от него могут ждать, когда просят написать сервис. Обычно именно это просят на собеседованиях. Проходили, знаем.
я вот хорошим тоном считаю написание логики в сущностях
Считаете? Считайте дальше. У этой медали две стороны, как и у любого правила. Я тоже пишу логику в сущностях и к сервисам прибегаю редко. В данном случае я просто написал то, что хотели от автора.
kafkiansky,Окей, спасиб! А может подкините годную статью по этим сервисам ? Как оно должно выглядеть? Какие прицепы использовать ? SOLID или что-то другое
Спасибо
Евгений Ромашкан, в большом приложении часто структура одна, а логика диаметрально противоположна. Удобно и не вызовет проблем сразу в сущностях если это mvp или что то простое. Если так делать в большом, то это конец проекту, потому что любые изменения в логике в одном начинают её ломать в другом месте.
grinat, Что значит структура одна а логика другая? Структура данных внутри сущностей подстраивается под логику.
Если у вас изменения в одном месте ломают систему в другом, у вас проблемы со связностью, помещение логики в сущности помогает её понизить.
И это здравый объектный подход, к которому мы так долго шли, пока анемичная модель и сервисы - возврат к идеям процедурного программирования.