Для этого есть два помощника.
вы можете повторно использовать ваши действия для нескольких контекстов с помощью помощников действий ajaxContext или contextSwitch.
Переключение контекста, как правило, более полезно в моем опыте, и оно может даже автоматически сериализовать данные, которые вы назначаете представлению в своем действии для ответов json, поэтому сценарий представления не требуется.
вы инициализируете переключение контекста следующим образом:
class MyController extends Zend_Controller_Action
{
public function init()
{
$contextSwitch = $this->_helper->getHelper('contextSwitch');
$contextSwitch->addActionContext('index', 'json')
->initContext();
}
public function indexAction()
{
$this->view->items = My_Model::fetchAll();
}
}
Вышеприведенное добавит контекст json к переключателю контекста, и когда действие вызывается с установленным параметром запроса 'format', оно автоматически сериализует содержимое, в этом случае давая массив json элементов, возвращаемых My_Model :: fetchAll ();
Параметр формата может быть передан либо по URL-адресу "/ my / index / format / json", либо с помощью запроса get "/ my / index? Format = json"
Настоящая магия заключается в том, что переключатель контекста также устанавливает соответствующие заголовки для типа ответа, такого как тип содержимого.
Вы даже можете указать свои собственные контексты и заголовки для отправки.
Подробнее о переключении контекста здесь