2015-04-02 89 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中使用測試函數。這是更有優勢的。