Я реализовал службу RESTful, расширив Zend_Rest_Controller. Сервис работает отлично. У меня только один контроллер с RESTful-поведением. Поэтому я добавил оставшийся маршрут только для этого контроллера в загрузчике.
protected function _initRestRoute()
{
$this->bootstrap('frontController');
$frontController = Zend_Controller_Front::getInstance();
$restRoute = new Zend_Rest_Route($frontController, array() , array('default' => array('MyserviceController')));
$frontController->getRouter()->addRoute('rest', $restRoute);
}
проблема начинается, когда я запускаю приложение портала zend. Ссылки в макете для контроллера индекса пропускают параметр действия, когда я создаю URL. Например, ссылка на макет индекса для домашней страницы действия в сетевом контроллере выглядит следующим образом.
$this->url(array('controller'=>'network','action'=>'homepage','module'=>'default'));
это должно вернуть «localhost / projectname / public / network / homepage» вместо «localhost / projectname / public / network». Такое поведение наблюдается только тогда, когда макет загружается контроллером по умолчанию, то есть IndexController. Проблема маршрутизации исчезнет, если я удалю маршрут zend rest из начальной загрузки. Пока я упоминаю, какой контроллер должен маршрутизировать остальной запрос, не должно быть проблемой. Но это влияет на маршрутизацию контроллера по умолчанию.