Как мне вызвать другие контроллеры в Zend Framework Process и получить их визуализированное представление? - PullRequest
1 голос
/ 03 октября 2010

У меня есть следующие настройки:

Бесконечный процесс PHP, который просматривает очередь заданий, которая содержит имена модулей, имена контроллеров, имена действий и массив параметров.

Для каждой работы я хочу вызвать данное действие контроллеров и получить обработанное представление для дальнейшей обработки.

Я думал о начальной загрузке экземпляра Zend_Application для каждой работы, но не совсем уверен, как справиться с остальными. Может быть, есть и лучший способ.

Итак, мой вопрос:

Как мне вызвать другие контроллеры в Zend Framework Process и получить их отрендеренное представление?

Спасибо всем заранее!

Ответы [ 3 ]

2 голосов
/ 13 октября 2010

Я думаю, что лучше всего взять Front_Controller и отправить новый запрос.

Как то так, с вашего контроллера (не работает код):

    $frontController = $this->getFrontController();

    $newRequest = new Zend_Controller_Request_Http();
    $newRequest->setActionName('newAction');
    $newRequest->setControllerName('newController');

    $response = new Zend_Controller_Response_Http();

    $frontController->dispatch($newRequest, $response);

Возможно, это не так просто, но о чем подумать ...

0 голосов
/ 09 сентября 2012

Не могли бы вы использовать Action View Helper ? Если вам нужен вывод в вашем контроллере, вы можете просто использовать $this->view->action('someAction', 'someController'); или помощник ActionStack.

В любом случае, помните о влиянии на производительность. Подробнее см. Почему Zend Framework Actionstack .

0 голосов
/ 03 октября 2010
$this->_forward('otherAction', 'otherControllerOrNull');

http://framework.zend.com/manual/en/zend.controller.dispatcher.html

Вы можете прочитать эту тему: Вызов функции-члена другого контроллера в Zend Framework?

...