1
我想要將所有JSON響應標準化(類似於Standardised JSON response from views)。 這裏是JSON響應例如Zend Framework的自定義標準化JSON響應
{
"status" : "failure",
"errors" : {
"name" : [ "Error text 1", "Error text 2" ],
"email" : [ "Email error text" ]
}
}
這裏是類實現我的standartised JSON響應
class JsonResponse
{
protected $_errors = array();
public function addError($key, $value) {
$this->_errors[$key][] = $value;
return $this;
}
public function setFormErrors(Zend_Form_Abstract $form) {
$this->_errors = $form->getErrors();
return $this;
}
public function __toArray() {
if (!empty($this->errors)) {
return array(
'status' => 'fail',
'errors' => $errors,
);
}
return array(
'status' => 'success',
);
}
public function __toString() {
return json_encode($this->__toArray());
}
}
一切都很好,但使用這個類是在屁股真正的痛苦。
class App_Controller extends Zend_Action_Controller
{
public function submitAction()
{
$form = new App_Form();
$form->isValid($this->getRequest()->getPost());
//disabling displaying layout
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$response = new JsonResponse();
$response->setFormErrors($form);
echo $response;
}
}
我是Zend Framework中真正的noob。 什麼是包裝JsonResponse的最佳方式?
- 幫手
- 延長
Zend_Controller_Response_Abstract
- 新的上下文切換
- 在
Form
什麼是最好的方法實現?
Creating a custom JSON response object with Zend Action Helper ContextSwitch - 這樣做的好方法,但仍然需要太多的代碼,恕我直言。