Symfony2 中的 SOA
SOA in Symfony2
我目前正在 Symfony2 中实现面向服务的架构,我想听取我们的建议。
我想知道在Controller中需要处理什么,在Service中需要处理什么
一个极端的解决方案是将 Request
传递给服务,它将实现所有逻辑(主要是 Doctrine,因为我正在开发 API 而不是 "full" 以 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);
}
}
我需要抛出的每个异常都可能有一个条件。
这样走好吗?我对实施完全错了吗?
与控制器逻辑相关的所有内容(例如,接受请求、响应请求、制作表单、绑定参数、从数据库中提取实体(最好使用 ParamConverter)、获取和设置会话对象、重定向等)应保存在控制器中。
其他一切都可以迁移到服务(或其他类)
我目前正在 Symfony2 中实现面向服务的架构,我想听取我们的建议。
我想知道在Controller中需要处理什么,在Service中需要处理什么
一个极端的解决方案是将 Request
传递给服务,它将实现所有逻辑(主要是 Doctrine,因为我正在开发 API 而不是 "full" 以 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);
}
}
我需要抛出的每个异常都可能有一个条件。
这样走好吗?我对实施完全错了吗?
与控制器逻辑相关的所有内容(例如,接受请求、响应请求、制作表单、绑定参数、从数据库中提取实体(最好使用 ParamConverter)、获取和设置会话对象、重定向等)应保存在控制器中。
其他一切都可以迁移到服务(或其他类)