2010-01-08 16 views
1

我正在開發一個Zend MVC應用程序。Zend MVC - 我回顯一些測試調試輸出,但它似乎被suppresed,並沒有顯示

有時我喜歡迴應一些文本,只是爲了快速和骯髒的調試。 e.g

<?php 
class MyClass {} 
echo('hello world - yes this script is included'); 

我可以在我的引導回聲「調試文本」>但是,當文字在我的模型或控制器它不被呈現在輸出呼應。

我使用Zend 1.9.5和使用Zend佈局與MVC


是否有被抑制「輸出的所有'變爲無視圖腳本」設置的地方?

+0

是你實際上包括MyClass的文件到您的應用程序,或實例MyClass的()作爲應用程序中任何位置的對象? – Mark 2010-01-08 16:03:45

+0

我在做兩個。首先包括文件並刷新頁面以查看是否輸出文本,有時還將類實例化爲對象。這實際上只是一些「調試文本」的例子。 – 2010-01-10 16:14:47

+0

到目前爲止所有的答覆者 - 謝謝我會嘗試這些建議 – 2010-01-10 16:17:22

回答

0

我回答了這個問題,因爲我回到了相同的代碼,10個月後,它再次讓我困惑。

我是在默認模塊,索引控制器和索引操作的上下文中。

我想回應一些簡單的文字作爲一個快速的方法來看看發生了什麼事代碼:

class IndexController extends Zend_Controller_Action 
{ 

public function indexAction() 
    { 
    //home page 
    echo '<h1>hello world</h1>'; 

    //set the special home page layout 
    $this->_helper->layout()->setLayout('home-page'); 
    } 

麻煩的是 - 回送的文本只是沒有顯示出來。

它在其他控制器中工作,但不是這個。這讓我瘋狂。

現在 - 我已經解決了這個問題。

我對這個特定的控制動作使用了一個特殊的佈局...'主頁佈局'。

在我的主頁佈局中,我沒有渲染任何視圖腳本。所有的內容和設計都在佈局中。由於主頁是一個特殊的獨特頁面,因此無需分成兩步查看。出於這個原因,我沒有理由需要一個視圖腳本。但是,我確實創建了一個'views \ scripts \ index \ index.phtml'來讓ZF免於抱怨。然而,我沒有把它放在我的佈局中 - 因爲它不是必需的。

任何回顯的輸出都被捕獲到layout()->content(由默認響應段的佈局自動分配)。因爲我沒有迴應該段,所以它表現得好像被回顯的文本被壓制一樣。

爲了解決這個問題,我只需要確保我回應了內容段。

<html> 
<head> 
... 
</head> 
<body> 
... my home page html... 
<?php echo $this->layout()->content ?> 
... my home page html... 
</body> 
</html> 

,它與我的調試文本中迴盪太...會爲渲染:

... my home page html... 
<h1>hello world</h1> 
... my home page html...  
0

如果viewRendering處於打開狀態,它可能正在查找view/scripts /來渲染,並可能不會顯示您的echo語句。

你可以嘗試關閉給定的控制器viewRendering,看看是否有幫助。

viewRenderer->setNoRender() 
1

你也可以用die()代替echo :)它會起作用。或者像這樣使用Zend_Log和輸出寫入器:

$writer = new Zend_Log_Writer_Stream('php://output'); 
+0

yep死()做的伎倆,讓我很快刪除它。 – 2010-01-22 12:12:46

+0

但最好有一個函數,它的callstact並獲取其中「死」被稱爲位置(應該是2級),然後呼應類似 'Form_Contact ::的init():第56行: NULL' 這使得做一些擴展的調試運行時沒有debuger更容易去除這些電話:) – 2010-01-22 14:44:38

1

輸出緩衝可能是罪魁禍首。嘗試:

echo 'my debug output'; 
flush(); 
相關問題