ThinkPHP是一款非常優秀的PHP開發框架,對於WEB開發的需求截然不同,考慮到模組化開發思路,ThinkPHP又提供了一個又一個的實用功能,其中不同模組表前綴功能甚是值得一提,也是在同一資料庫中部署多個系統的開發者不能錯過的功能之一。
1.為什麼在同一個資料庫中部署多個系統
在實際的WEB開發中,通常情況下會碰到一些需要在同一個Web應用程式中整合多個系統的情況,這些系統可能會涉及業務的不同領域。如果將所有的系統都整合到一個應用程式中,不僅開發難度高,極其容易造成程式碼混亂,而且可能導致VIP死鎖情況發生。如此一來,為了確保方便、有效率的開發,我們需要在同一資料庫中部署多個系統。
2.ThinkPHP模組化開發
ThinkPHP採用MVC架構設計,為了更好的解決我們上述問題,我們可以採用模組化開發思路。所謂模組化,就是將一個大型的應用程式拆分成若干個互相獨立的模組,在模組的設計過程中,我們可以為不同的模組配備不同的資料庫表前綴,來避免表名之間的衝突。
3.ThinkPHP模組化功能特性
ThinkPHP在模組化開發的過程中,提供了視圖層、控制層、模型層等一系列應用,特別是控制層功能,可以使多個模組之間交互,互相調用,有效率地完成運算,搭建成我們最終的應用程式。控制層是在MVC架構中,連接於業務邏輯層與視圖層之間的重要部分,可謂如魚得水。當然,在以上層次之上,還有專為程式碼最佳化而設計的ThinkPHP路由和快取兩個實用功能。
4.ThinkPHP不同模組表前綴設定
對於同一資料庫中不同模組的表前綴設置,我們只需要在模組中相應的設定檔中,新增'MODULE的前綴'_TABLE_PREFIX的全域數組變量,並將其加入資料庫配置的該數組即可。
$reslist=M('子目錄名稱/Test')->select();
其中M('')函數就是模型中的模組名稱,M的第二個參數是模組中的控制器名,select()方法用於查詢數據,其中參數也可不傳2.解決方法
實例程式碼如下所示:
##$config=array ('DB_TYPE'=>'mysql', 'DB_HOST'=>'localhost', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_PORT'=>3306, 'DB_NAME'=>'test2333', 'DB_PREFIX'=>'nov_', 'MODULE_ALLOW_LIST' => array('Home', 'Admin'), 'DEFAULT_MODULE' => 'Home', 'SESSION_PREFIX' => 'api_', 'LOG_RECORD'=>false, 'LOG_TYPE'=> 'Db', 'LOAD_EXT_CONFIG' => 'extconfig',
以上是thinkphp可以根據前綴區分不同的資料表嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!