Php 将ZF2 param()插件用作模块(没有ZF2)

Php 将ZF2 param()插件用作模块(没有ZF2),php,zend-framework,zend-framework2,zend-form,Php,Zend Framework,Zend Framework2,Zend Form,我有一个php脚本,它通过GET方法接收变量。我可以使用$\u GET['var']访问变量,但我想使用ZF2的$this->params()->fromQuery('var')构造,而无需安装ZF2引擎 我对“如何”感兴趣。如果您对“为什么(我想这么做)”感兴趣,那是因为我正在处理大量现有的遗留代码库,将其重写为逐步使用ZF2。下一步是使用params() 因此,我对构建使params()插件工作所需的代码感兴趣。我的想法是编写一个可以调用到类中的trait,然后在类中使用$this->par

我有一个php脚本,它通过GET方法接收变量。我可以使用
$\u GET['var']
访问变量,但我想使用ZF2的
$this->params()->fromQuery('var')
构造,而无需安装ZF2引擎

我对“如何”感兴趣。如果您对“为什么(我想这么做)”感兴趣,那是因为我正在处理大量现有的遗留代码库,将其重写为逐步使用ZF2。下一步是使用params()

因此,我对构建使params()插件工作所需的代码感兴趣。我的想法是编写一个可以调用到类中的trait,然后在类中使用
$this->params()->fromQuery()

我当前的想法

trait参数trait
{
公共函数参数(字符串$param=null,混合$default=null)
{
//魔力
返回$params;
}
}
X类
{
使用准特征;
函数showGet()
{
echo$this->params()->fromQuery('var');
}
}
magic
部分就是我想要填充的部分。

params()只是Zend\Http\Request的控制器插件代理

通过将zendframework/zend http添加到composer.json中,您可以在完整的ZF2 MVC应用程序之外的任何地方使用它

require{
    "zendframework/zend-http": "2.3.0"
}
在文件中包括./vendor/autoload.php

<?php
require 'vendor/autoload.php';

$request = new \Zend\Http\PhpEnvironment\Request();

//post
$post = $request->getPost();

//query
$query = $request->getQuery();

// etc, etc...

我运行了脚本,但它似乎没有从URL中提取任何变量。我使用了
…?var=test&var2=test2
var\u dump($query)
,它显示了类似
object(Zend\Stdlib\Parameters){3(1){[“存储”:“ArrayObject”:private]=>array(0){}
的内容,我编辑了答案以使用正确的请求对象。您应该能够找到您的请求已填充。