在ZF2中,如何访问控制器插件中的Response对象?

时间:2014-12-16 12:43:45

标签: php zend-framework2

在ZF2中,我有一个控制器插件,可以远程调用身份验证服务。我想将此调用中的Set-Cookie标头传递给我的响应,以便将第一个请求中设置的cookie传递给客户端的浏览器。

如何在控制器插件中执行此操作,我没有可用的Resquest / Response类实例?

1 个答案:

答案 0 :(得分:2)

有几种方法。

如果你的控制器插件扩展Zend\Mvc\Controller\Plugin\AbstractPlugin,你可以调用(从你的插件中)。

$this->getController()->getResponse();

另一种方法是将响应对象注入构造函数参数。

// Module.php
public function getControllerPluginConfig()
{
    return array(
        'factories' => array(
            'MyModule\Controller\FooPlugin' => function($pm) {
                $serviceManager = $pm->getServiceLocator();
                $response = $serviceManager->get('Response');

                return new FooPlugin($response);
            }
        )
    );
}