В настоящее время я внедряю сервис-ориентированную архитектуру в Symfony2, и я хотел бы получить наши рекомендации по этому поводу.SOA в Symfony2
Я хочу знать, что мне нужно для управления в контроллере, и что мне нужно для обработки в сервисе.
Исключительным решением было бы передать Request
службе, и он будет реализовывать всю логику (в основном, Doctrine, поскольку я разрабатываю API, а не «полный» сайт с Twig, например), а затем отправьте обратно Response
в контроллер.
Это означает, что я должен был бы создать такой код:
В службе:
if (null === $entity) {
throw new \Exception('Not found.', self::NOT_FOUND);
}
И в контроллере:
try {
$service->doThings();
}
catch (\Exception $e) {
if ($e->getCode() === Service::NOT_FOUND) {
return new Response($e->getMessage(), 404);
}
}
С потенциально одним условием для каждого исключения я нужно бросить.
Это хороший способ пойти? Я совершенно не прав в отношении реализации?
не связывают свои услуги на запросы или ответы, это работа контроллера. Для обработки сообщений между службой и контроллером я применяю тот же подход. Самая сложная часть - это документирование всех исключений, которые могут быть выбраны и отслеживания их. – user2268997
Представьте, что вы хотите создать привязку без запроса, долгое время независимо от команды индексирования, все вызовы, которые она может сделать, могут/должны храниться в службе. –