2015-04-02 92 views
1

有人请指教我如何var_dump()Zend_Application对象?Zend Framework 1对象内的var_dump对象

object(Bootstrap)[3] 
public 'frontController' => null 
protected '_appNamespace' => boolean false 
protected '_resourceLoader' => null 
    protected '_application' => 
    object(Zend_Application)[1] 
     protected '_autoloader' => 
     object(Zend_Loader_Autoloader)[2] 
      protected '_autoloaders' => 
       array (size=0) 
... 

我可以var_dump($this->bootstrap('view'));的var_dump的引导对象,但我无法弄清楚如何的var_dump嵌套Zend_Application对象。

非常感谢提前。

+0

这是为什么你想这样做的另一个问题?它是受保护的对象,您不能直接** var_dump **它。 – 2015-04-02 12:10:44

+0

@Indrasinh Bihola明白了。谢谢。基本上我想了解如何var_dump一个对象内的对象。我不知道直接var_dump保护对象是不可能的。你说你不能直接var_dump。是否有一种“间接”的方式来var_dump Zend_Application对象? – 2015-04-02 12:25:12

回答

1

首先,在Zend框架1,你可以/应该使用:

Zend_Debug::dump($whatever); 

相反的:

var_dump($whatever); 

你可以转储应用程序,但它不会给你的一切。你可以改变的index.php添加:

Zend_Debug::dump($application); 

后:

$application->bootstrap() 
      ->run(); 

这里最重要的事情是永远不会忘记ZF是开源的,你可以很进入代码来看待它,将Zend_Debug :: dump()放在任何你喜欢的地方,这样你就可以做你想做的事。完成后,只需将zend文件还原为原始文件即可。

最后一点:你可能甚至可能不需要转储这样的zend应用程序。我不知道你的代码有什么问题,但它怀疑它的“真正”的问题与zend。阅读应用程序对象,引导程序和zend的mvc通常应该可以帮助你。

希望这有助于!

多利安M.补充:还可以扩展了Zend对象添加倾倒在自己的功能,不要弄乱了原代码

+1

您还可以扩展Zend对象以在您自己的函数中添加转储,并且不要弄乱原始代码;) – 2015-04-02 13:01:50

+0

@Iznogood感谢您的反馈。这帮助我更好地理解了Zend引导过程。 – 2015-04-02 13:15:36

+0

@DorianM确实!它有时可能非常复杂。不同的Zendobjects期望特定的对象,并且您的派生类有时不会剪切它。但是,当然。非常好的主意。我会将您的评论添加到我的答案中。当然有信用。 – Iznogood 2015-04-02 13:16:12

0

如果您需要var_dump()作为测试代码,我建议您在phpUnit中使用测试函数。这是更有优势的。