thinkphp是一款非常優(yōu)秀的php開(kāi)發(fā)框架,對(duì)于web開(kāi)發(fā)的需求截然不同,考慮到模塊化開(kāi)發(fā)思路,thinkphp又提供了一個(gè)又一個(gè)的實(shí)用功能,其中不同模塊表前綴功能甚是值得一提,也是在同一數(shù)據(jù)庫(kù)中部署多個(gè)系統(tǒng)的開(kāi)發(fā)者不能錯(cuò)過(guò)的功能之一。
1.為什么在同一個(gè)數(shù)據(jù)庫(kù)中部署多個(gè)系統(tǒng)
在實(shí)際的WEB開(kāi)發(fā)中,通常情況下會(huì)碰到一些需要在同一個(gè)Web應(yīng)用程序中集成多個(gè)系統(tǒng)的情況,這些系統(tǒng)可能會(huì)涉及到業(yè)務(wù)的不同領(lǐng)域。如果將所有的系統(tǒng)都集成到一個(gè)應(yīng)用程序中,不僅開(kāi)發(fā)難度大,極其容易造成代碼混亂,而且可能導(dǎo)致VIP死鎖情況發(fā)生。如此一來(lái),為了保證方便、高效的開(kāi)發(fā),我們需要在同一數(shù)據(jù)庫(kù)中部署多個(gè)系統(tǒng)。
2.ThinkPHP模塊化開(kāi)發(fā)
ThinkPHP采用MVC架構(gòu)設(shè)計(jì),為了更好的解決我們上述問(wèn)題,我們可以采用模塊化開(kāi)發(fā)思路。所謂模塊化,就是將一個(gè)大型的應(yīng)用程序拆分成若干個(gè)互相獨(dú)立的模塊,在模塊的設(shè)計(jì)過(guò)程中,我們可以為不同的模塊配備不同的數(shù)據(jù)庫(kù)表前綴,來(lái)避免表名之間的沖突。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
3.ThinkPHP模塊化功能特性
ThinkPHP在模塊化開(kāi)發(fā)的過(guò)程中,提供了視圖層、控制層、模型層等一系列應(yīng)用,特別是控制層功能,可以使多個(gè)模塊之間交互,互相調(diào)用,高效地完成運(yùn)算,搭建成我們最終的應(yīng)用程序。控制層是在MVC架構(gòu)中,連接于業(yè)務(wù)邏輯層與視圖層之間的一個(gè)重要部分,可謂是如魚(yú)得水。當(dāng)然,以上層次之上,還有專(zhuān)門(mén)為代碼優(yōu)化而設(shè)計(jì)的ThinkPHP路由和緩存兩個(gè)實(shí)用功能。
4.ThinkPHP不同模塊表前綴設(shè)置
對(duì)于同一數(shù)據(jù)庫(kù)中不同模塊的表前綴設(shè)置,我們只需要在模塊中相應(yīng)的配置文件中,添加'MODULE的前綴'_TABLE_PREFIX的全局?jǐn)?shù)組變量,并將其加入到數(shù)據(jù)庫(kù)配置的那個(gè)數(shù)組中即可。
$reslist=M('子目錄名稱(chēng)/Test')->select();
其中M('')函數(shù)就是模型中的模塊名稱(chēng),M的第二個(gè)參數(shù)就是模塊中的控制器名,select()方法用于查詢數(shù)據(jù),其中參數(shù)也可不傳2. 解決方法
實(shí)例代碼如下所示:
$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',
);
如果此時(shí)需要配置一個(gè)名稱(chēng)為“Test”的模塊,并為該模塊設(shè)置表前綴,則我們可以在配置文件中,添加如下全局?jǐn)?shù)組變量:
'MODULE_TEST_TABLE_PREFIX' => 'tb_'
如此一來(lái),在使用"$this->M('Test/TBid')->select();"這樣的代碼調(diào)用中,ThinkPHP就可以根據(jù)前綴區(qū)分不同的數(shù)據(jù)庫(kù)表。
以上就是thinkphp可以根據(jù)前綴區(qū)分不同的數(shù)據(jù)表嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
PHP怎么學(xué)習(xí)?PHP怎么入門(mén)?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門(mén)到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)