Php 如何调用Zend Framework进程中的其他控制器并检索其渲染视图?

Php 如何调用Zend Framework进程中的其他控制器并检索其渲染视图?,php,model-view-controller,zend-framework,controller,message-queue,Php,Model View Controller,Zend Framework,Controller,Message Queue,我有以下设置: 一个无休止地运行的PHP进程,它查看包含模块名、控制器名、操作名和参数数组的作业队列 对于每个作业,我希望调用给定的控制器操作并检索渲染视图以进行进一步处理 我在考虑为每个作业启动一个Zend_应用程序实例,但不确定如何处理其余的工作。也许还有更好的办法 所以我的问题是: 如何调用Zend Framework进程中的其他控制器并检索其渲染视图 提前感谢大家 $this->_forward('otherAction', 'otherControllerOrNull');

我有以下设置:

一个无休止地运行的PHP进程,它查看包含模块名、控制器名、操作名和参数数组的作业队列

对于每个作业,我希望调用给定的控制器操作并检索渲染视图以进行进一步处理

我在考虑为每个作业启动一个Zend_应用程序实例,但不确定如何处理其余的工作。也许还有更好的办法

所以我的问题是:

如何调用Zend Framework进程中的其他控制器并检索其渲染视图

提前感谢大家

$this->_forward('otherAction', 'otherControllerOrNull');


您可以阅读以下帖子:

我认为,使用前端控制器并发送新请求是最好的选择

类似于以下内容,来自控制器(非工作代码):

它可能不是这么简单,但需要考虑的是……

你能不能不使用一个?如果您希望控制器中的输出,那么您只需使用
$this->view->action('someAction','someController')或ActionStack帮助程序


无论哪种情况,都要注意性能影响。有关更多详细信息,请参阅。

但这会将现有请求转发给指定的控制器/操作,对吗?在我看来,OP希望捕获该控制器/操作的输出,以便在当前请求中使用。没错,David,我希望保持当前进程运行,并只处理其他控制器生成的任何输出_forward将不允许此操作。您是否找到过此favo的解决方案?它有效:$request=new Zend_Controller_request_Http()$此->getFrontController()->setResponse(新Zend_控制器_响应_Cli)->setRequest($request->setControllerName('testController')->setActionName('testAction'))->setRouter(新Zend_控制器_路由器)->setParam('Noviewrender',true)…谢谢!:-)
    $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);