在我的 Zend Framework 项目中,我使用了一个服务层,但是我真的不知道在哪里处理错误。
例如,假设我有一个UserService::updateUser($data);
如果我有:
$data = array(
'userId' => 2,
'firstName' => 'Jane',
'lastName' => 'Doe',
);
id 为 2 的用户不存在?
您将在哪里以及如何处理此类错误?
在我的 Zend Framework 项目中,我使用了一个服务层,但是我真的不知道在哪里处理错误。
例如,假设我有一个UserService::updateUser($data);
如果我有:
$data = array(
'userId' => 2,
'firstName' => 'Jane',
'lastName' => 'Doe',
);
id 为 2 的用户不存在?
您将在哪里以及如何处理此类错误?
您可以转发给特定的控制器来处理您的所有业务错误,如下所示:
if ($error=true)
return $this->_forward('standarderror', 'businesserror', 'default',
array('msgtitle' => $this->view->translate('item_not_found'),
'msg' => $this->view->translate('item_not_found_msg')));
以及您的 BusinesserrorController 的样子:
class BusinesserrorController extends Zend_Controller_Action {
public function init() {
$this->_helper->viewRenderer->setNoRender();
}
public function standarderrorAction() {
$msgtitle = $this->_getParam('msgtitle');
$msg = $this->_getParam('msg');
$this->view->errortitle = $msgtitle;
$this->view->errormessage = $msg;
$this->view->nextstep = $this->view->translate('return_to_the_homepage');
$this->view->nextstepurl = "/";
echo $this->render('error/businesserror', null, true);
}
}
您也可以对转发的 url 进行参数化;)