進行 Drupal 開發時有許多模塊和工具可供使用,其中最常用的兩項便是 Devel 及 Drupal for Firebug。本文和《Drupal常用開發工具(二)——Drupal for Firebug》將分別對它們進行介紹。
與本文相關的很多內容可以通過 Devel Demo 模塊進行查看,如有糾正或補充可以在官方問題隊列中發帖,也可以在本文後進行留言。
Devel模塊
Devel 集合了多個開發輔助模塊,除了作爲核心的 Devel 模塊外,Devel 模塊包中還包含了其它子模塊,如 Devel Generate 可用於生成測試內容、術語和用戶等。(注意Theme Developer 模塊已經從Devel 模塊中分離出來成爲單獨的模塊)
Devel 的子模塊並不在本文中進行介紹,如有興趣可到項目頁面閱讀相關的說明文檔。
dpm()
使用drupal_set_message() 函數將變量顯示在頁面的 ‘message’ 區域。使用此函數,可以變量進行跟蹤。因爲Devel模塊現在使用Krumo 對變量進行顯示,所以輸出結果會變得複雜一些。
dpm($input, $name = NULL);
如果因爲某些原因,你沒有使用Krumo,可以使用 $name 參數來對不同的 dpm() 調用進行區分。
dvm()
使用drupal_set_message() 函數將var_dump() 函數處理變量的結果顯示在 ‘message’ 位置。這個函數的輸出比基於Krumo 的dpmt() 函數的結果要難讀一些,但使用它可以很方便的進行復制粘貼。
dvm($input, $name = NULL);
dpr()
將變量以易讀的格式顯示在頁面頭部(不使用Krumo),對於沒有 $message 變量的主題會是一個非常好的選擇。
dpr($input, $return = FALSE, $name = NULL);
將 $return 參數設置爲TRUE,則將顯示數據以函數結果返回而不進行打印。
dvr()
與dpr() 基本相同,不過輸出結果經過 var_dump() 函數得出。
kpr()
類似dpm(),不過是在頁面上方顯示Krumo形式的輸出結果,適用於頁面模板中沒有 $message 變量的情況。
dargs()
輸出傳入當前路由函數的參數值。以下圖爲例,參數分別爲 ‘foo’和’42’。當你不確定Drupal路由函數當前接收到的參數是什麼時,可以使用這個函數進行確認。(譯註:其實就是將 Drupal 內核 args() 函數的結果顯示到頁面上)
dargs();
dd()
將變量記錄到臨時目錄下名爲drupal_debug.txt 的記錄文件中,此函數的所有輸出會追加到記錄文件後,以方便開發者跟蹤查看變量的變化情況。
如果使用Mac OS X,可以使用Logging Console對記錄文件中的內容進行查看。
如果使用Linux,則可以使用 ‘tail –f drupal_debug.txt’ 命令查看被記錄的數據。
dd($data, $label = NULL)
ddebug_backtrace()
打印函數調用堆棧
db_queryd()
此函數是 db_query() 的調試版本,它能將數據庫查詢結果或錯誤信息顯示到瀏覽器。當想要監控一些數據庫請求信息,但又不希望列出當前頁面所進行的所有數據庫請求會很有用。
db_queryd($query, $args = array());
原文標題:《Drupal常用開發工具(一)——Devel模塊》