在控制器中的zf2中获取$ _SERVER变量

时间:2014-12-24 06:38:40

标签: php controller zend-framework2 server superglobals

在控制器中,如何在zf2中获取$_SERVER个变量?

例如,我想获得$_SERVER['HTTP_HOST']$_SERVER['REMOTE_ADDR']等等。

我尝试过使用以下内容:

$this->getRequest()->getServer();

但结果是:

Fatal error: Call to undefined method Zend\Http\Request::getServer() 

2 个答案:

答案 0 :(得分:4)

要从控制器中获取$ _SERVER值,我能够:

$request    = new \Zend\Http\PhpEnvironment\Request();
$httpHost   = $request->getServer('HTTP_HOST');
$remoteAddr = $request->getServer('REMOTE_ADDR');

由于我在回答我自己的问题,我很想知道是否有其他推荐的解决方案。

答案 1 :(得分:2)

如果你的控制器扩展了AbstractActionController,你可以在zf2 v2.4中使用$this->getRequest()->getServer()->get('REMOTE_ADDR');

class ListController extends AbstractActionController
{
    public function indexAction()
    {
        $addr = $this->getRequest()->getServer()->get('REMOTE_ADDR');

        \Zend\Debug\Debug::dump($addr); die();
    }
}