gpt4 book ai didi

php - 使用服务层在我的分层应用程序中向哪里抛出异常?

转载 作者:行者123 更新时间:2023-12-03 08:01:57 25 4
gpt4 key购买 nike

我想知道应该在我的Zend Framework + Doctrine 2 MVC应用程序中引发异常的地方。

这是我的设计:

数据库-MySQL> ORM(Doctrine2)>服务> Controller

我的服务将服务对象作为参数,并为几乎所有方法返回服务响应对象。

服务响应返回状态,消息和数据,这些可以是您想要的任何内容。

我的 Controller 使用这些服务。

我想知道应该在哪里抛出异常。

例:

public function getAllMembers(ServiceObject $data)
{
// do some mapping with $data
$users = $userRepository->getAllMembers($data);
$response = new ServiceResponse('success');
$response->setData($users);

return $response;
}

我应该检查服务中的参数,然后抛出 Controller 可以捕获的异常,还是应该抛出异常,让我说说这个示例的存储库,并捕获服务以允许我返回错误状态的ServiceResponse ?

关于这种架构有什么反馈吗?

最佳答案

我通常将异常尽可能地深入到代码中(在这种情况下,它将在存储库中),然后在最合适的位置捕获它们。在这种情况下,我认为最合适的方法是在Service中捕获它,然后返回带有错误状态的ServiceResponse(否则,您将仅返回成功消息,这会使ServiceResponse变得多余)。

关于php - 使用服务层在我的分层应用程序中向哪里抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com