原始出處 http://www.xoops.org/modules/mediawiki/index.php/Dev:module_architecture
減少SQL 查詢次數
減少查詢的數量可以減少等待的時間。這句話的意思是:不使用正在開啟的模組以外的xoops_version.php 內的查詢式。
這個的意思是如果你正在使用查詢式決定主選單下的副選單內容的話,先用下面的方式檢查你正在使用的模組是否是這個模組
global $xoopsModule;
if (is_object($xoopsModule) && $xoopsModule->getVar('dirname') != $modversion['dirname']) {
不要在迴圈中使用查詢式
如果你需要先執行一個查詢式然後才能得到所需資訊的話,就執行完第一個條件式取得第二個查詢式所需要的資訊,接著使用一個查詢式取得所有資訊。
舉例來說,如果要取得所有文章內提到的使用者的話,先取出所有文章,接著找出使用者代號,最後取得所有使用者代號的資訊。
增加程式可讀性
沒有人喜歡讀一整頁複雜的流程與SQL 查詢式。
將複雜的程序放在函式或類別的成員函式中
如果你需要一個複雜的程序,將這個程序放在函式或類別的成員函式中並給這個函式一個有意義的名稱。如果稍後你需要在執行一次這個相同的程序的話,你就有一個很方便的函式可以使用了。
將所有SQL 查詢式放在函式或類別的成員函式中
在函式或類別的成員函式中應該是用不到SQL 查詢式。呼叫有意義的函式成員函式而不是使用SQL 查詢式並處理結果集合可以增加程式的可讀性。
使用XOOPS Form 函式庫
表單類別應該是在引入的檔案中,如果是的話就可以使用XoopsForm 函式庫了。使用函式庫可以很簡單的產生表格並且修改或新增表格內的項目。
使用$xoopsModule->getVar('dirname')
不要直接將模組的目錄名稱直接寫在PHP 檔案或是樣版中。如果在xoops_version.php 內的目錄名稱有改變的話,使用$xoopsModule->getVar(‘dirname’) 時就可以改變模組內全部的目錄名稱了(舉例來說一個義大利的網站的模組名稱不叫作’wordbook’而是’dizionario’)。從Xoops v. 2.0.10 a 版開始在核心新增了一個smarty 變數<{$xoops_dirname}>,這個變數會回傳模組的目錄名稱,所以你就可以在樣版中使用這個變數了– 如果需要絕對路徑的話。
使用樣版
值得一再強調。樣版完成MVC 程式碼的分離,是個很重要的部分,讓模組更容易被了解。
你已經有現成的工具了– 使用這些工具吧!