开发者

How do you handle errors when using a service layer?

in my Zend Framework project, I use a Service Layer, however I don't really know where to handle errors.

For example, let's say I've a UserService::updateUser($data);

What if I've:

$data = array(
   'userId' => 2,
   'firstName' => 'Jane',
   'lastName'  => 'Doe',
);

And user with id 2 开发者_C百科doesn't exist?

Where and how would you handle such errors?


You can forward to a specific controller to handle all your business errors, like this :

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')));

and where your BusinesserrorController looks like :

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);
}

}

you can parametrize the forwarded url as well ;)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜