2011-06-10 40 views
1

下載了一些開放源代碼的PHP腳本,例如Wordpress和Moodle,以研究它們在那裏構建代碼等的方式。但是,在查看這兩個腳本時,我總是無法找到數據庫查詢(選擇,插入,更新)?爲什麼他們如此隱藏,我如何找到他們?開源PHP項目中的數據庫查詢?

回答

4

它們可能實際上是通過ORM層生成的。哪一個是通過對象方法生成查詢的對象。

+0

有趣的是,學習這種方法有多困難並且需要多長時間? – ritch 2011-06-10 16:01:18

+0

許多框架已經內置在ORM層中。 ZF有Zend_Db_Select。那可能是一個開始的好地方。 – datasage 2011-06-10 16:04:26

0

沒有隱藏,那裏只是用OOP方式寫的!

1

查看Wordpress中的/wp-includes/user.php以獲取實施的具體細節。你會看到SQL語句,以及爲處理它們的代碼,如下所示:

$user_nicename_check = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login)); 
1

在WordPress中,他們在wp-db.php,有趣的是:)「隱藏」的低層次數據庫中的大多數要求該代碼儘可能地將數據庫中的「業務邏輯」隔離開來。

這使得它更容易做出一個改變,而無需重新對碼,另外,或支持多個數據庫(或其他存儲)後端,而不必垃圾與檢查你的代碼,看看哪種DB你的正在使用。

如果你真的想弄清楚在一個大型的開源項目中發生了什麼,尤其是面向對象的項目,可能值得使用能夠分析代碼並跳轉到定​​義的編輯器/ IDE,比如NetBeans。這通常會使您在閱讀時更容易遵循代碼,而無需弄清楚哪個類正在調用哪個文件(尤其是在PHP自動加載發生時)。