2008-12-05 34 views
1

所以我剛剛從臨時調試dump,print_recho的步驟到一些更復雜的方法,我很困難。PHP調試 - 在哪裏設置斷點?如何認證?

我使用Zend Framework,Aptana和Zend Debugger。

在這一刻我試圖調試一個自定義控制器,無論我嘗試我沒有得到我的斷點,我明白,因爲有認證之間和使用菜單。

問題

  1. 我怎樣才能在認證點我的應用突破,登錄瀏覽器,瀏覽到特定URI,然後繼續調試?
  2. 什麼是在MVC中設置Zend Framework中斷點的好地方?
+0

這個問題應該刪除,它是基於錯誤的assuptions而不是建設性的(這是我的問題)。 – markus 2012-10-24 23:21:10

+0

你的願望已經被授予:) – 2012-10-25 00:01:22

回答

1

您想通過請求中途更改當前用戶的身份驗證詳細信息嗎?

我不認爲這是可能的。 Zend Debugger幾乎是一個只讀工具。即使是這樣,你認爲你正在使用的任何框架都可以處理這個問題。這意味着它必須不斷嘗試將其內部狀態與輸入數據更改同步。

我認爲,不要問我們如何解決這個特定的問題,你應該告訴我們爲什麼你需要改變認證。這聽起來像是在調試器中啓動腳本,由於沒有用戶會話而失敗。

Zend Debugger有一個瀏覽器工具欄(http://files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm),它允許您爲當前頁面啓動一個調試器;調試器將擁有瀏覽器發送的所有信息:cookies,發佈數據等。甚至還有一個「調試下一頁」設置,它可以幫助您調試POST表單。聽起來這是你想要的。

+0

我沒有Zend Studio,這個工具欄只適用於Zend Studio。我記得已經做過類似的事情了。該應用程序正在等待我在調試器中進行一次又一次的調試,然後我可以導航並恢復調試... – markus 2008-12-06 16:46:28

1

那豈不是更容易建立這樣一個常數:

define('MODE_DEBUG', 1); 

然後在認證過程中檢查:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){ 

} 

沒有人將能夠注入到該常數可能發生的最糟糕的事情是,你最終會離開調試模式,因爲我的錯誤...

你可以在定義之前進行檢查:

define('MODE_DEBUG', (false !== strpos($_SERVER['HTTP_HOST'], 'dev.mysite.com') ? 1 : 0)); 
1

也許你只需要重新考慮轉儲解決方案(我喜歡使用斷點的想法,但在經歷過並且我使用Zend Studio之後的打嗝後轉回)。爲了調試我的應用程序,我使用Zend_Log和Zend_Log的firebug writer。螢火蟲輸出日誌到firebug(注意,你必須安裝Firefox的firephp擴展)。將記錄器存儲在註冊表中,您可以完成大量調試,而不會讓您的視圖變醜。

+0

這聽起來也很有希望,我會給它一個! – markus 2008-12-08 14:11:01

0

好吧,所以我使用了zend調試器。 (你的問題激起了古老的惡魔),我終於想出了「正確」的調試方式。要回答你最初的問題來登錄後進行調試,我會說爲Firefox或IE安裝zend工具欄。在調試菜單項右邊有一個下拉菜單和一些選項。其中一個選項是「下一頁」。因此,您可以轉到登錄屏幕選擇「下一頁」,然後放入您的憑證並提交,並且NEXT頁面將被調試。

相關問題