真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

(PHP學(xué)習(xí)筆記)工廠類在MVC框架中的運用

    在基本的MVC框架模型中,會引用到數(shù)據(jù)庫和模板文件。但是不同的開發(fā)者會選擇不同的數(shù)據(jù)庫以及模板引擎。因為在實際開發(fā)的過程中,有可能會更換數(shù)據(jù)庫或者是模板引擎,如果針對每個數(shù)據(jù)庫以及模板引擎都來寫一個接口來調(diào)用的話,將會十分繁瑣。所以工廠類的出現(xiàn),很好的解決了這個問題。

成都創(chuàng)新互聯(lián)公司長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為青羊企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),青羊網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

    在此我定義一個數(shù)據(jù)庫工廠類以及一個模板引擎工廠類。

1、首先來看看數(shù)據(jù)庫工廠類:

    在此假設(shè)我使用的是MySQL數(shù)據(jù)庫,數(shù)據(jù)庫工廠類中封裝了實例化數(shù)據(jù)庫(使用何種數(shù)據(jù)庫)的方法以及數(shù)據(jù)庫操作(增刪改查等等)的相關(guān)方法。

    在使用數(shù)據(jù)庫工廠類的時,首先確定使用的是什么數(shù)據(jù)庫。在此我就需要在數(shù)據(jù)庫工廠類中寫一個初始化方法,如下所示,$dbtype是指定使用的數(shù)據(jù)庫類型,$config則是傳入該數(shù)據(jù)庫的配置信息。

public static function init($dbtype, $config) {
self::$db = new $dbtype;
self::$db->connect($config);
}

    初始化數(shù)據(jù)庫后,就可以調(diào)用各個數(shù)據(jù)庫的操作方法,我們在工廠類中定義的方法是可供任意種類的數(shù)據(jù)庫使用的。例如插入方法:

public static function insert($table,$arr){
return self::$db->insert($table,$arr);
}

    在此定義兩個參數(shù),一個表名,一個插入的數(shù)據(jù)。然后調(diào)用的是mysql數(shù)據(jù)庫的insert方法,來實現(xiàn)具體的插入操作。

    總結(jié):使用數(shù)據(jù)庫工廠類,即為了所需的數(shù)據(jù)庫相關(guān)功能定義了一個標(biāo)準(zhǔn),無論傳入什么數(shù)據(jù)庫,都可以獲取到該數(shù)據(jù)庫的實例化對象。我們只需要定義好工廠類中各操作方法以便調(diào)用實際的數(shù)據(jù)庫操作方法即可。

2、模板引擎工廠類

    與數(shù)據(jù)庫工廠類相似,在模板引擎工廠類中,不針對任何一種模板文件。同樣的定義了初始化模板引擎的方法,以便確定使用何種模板引擎。

    在此假設(shè)我們使用的模板引擎為Smarty模板,初始化方法如下:

public static function init($viewtype,$config){
self::$view = new $viewtype;
foreach($config as $key=>$value){
self::$view -> $key = $value;
}

    $viewtype為視圖模板的類型,$config為配置信息(此處為數(shù)組文件)。

    在確定好視圖模板引擎后,與數(shù)據(jù)庫工廠類一樣,可以定義相關(guān)功能的方法,來調(diào)用實際的模板引擎操作方法即可。


新聞標(biāo)題:(PHP學(xué)習(xí)筆記)工廠類在MVC框架中的運用
URL分享:http://weahome.cn/article/pgjdoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部