2014-06-10 32 views
0

我有一个通过GET方法接收变量的php脚本。我可以使用$_GET['var']访问变量,但我想使用ZF2的$this->params()->fromQuery('var')构造,而不使用ZF2引擎。使用ZF2 param()插件作为模块(不带ZF2)

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

因此,我有兴趣建立所需的代码,使params()插件的工作。我的想法是写一个可以被称为我的课程的特质,然后在课堂上我可以使用$this->params()->fromQuery()

我现在的想法

trait ParamTrait 
{ 
    public function params(string $param = null, mixed $default = null) 
    { 
     //magic 

     return $params; 
    } 
} 

class X 
{ 
    use ParamTrait; 

    function showGet() 
    { 
     echo $this->params()->fromQuery('var'); 
    } 
} 

magic部分就是我要找来填补。

回答

0

PARAMS()仅仅是一个控制器插件代理的Zend \ HTTP \请求

您可以通过添加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... 
+0

我跑的剧本,但它似乎并没有从URL拉任何变量。我使用了'... var = test&var2 = test2'和'var_dump($ query)',它显示了像'object(Zend \ Stdlib \ Parameters)#3(1){[“storage”:“ArrayObject” :private] => array(0){}}' – Dennis

+0

我编辑了答案以使用正确的请求对象。你应该能够找到你的请求被填充。 –