PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)

PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)

ID:40313978

大小:59.50 KB

頁數(shù):10頁

時間:2019-07-30

PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)_第1頁
PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)_第2頁
PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)_第3頁
PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)_第4頁
PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)_第5頁
資源描述:

《PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、PHPMVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)PHPMVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn),閱讀PHPMVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn),MVC模式在網(wǎng)站架構(gòu)中十分常見。它允許我們建立一個三層結(jié)構(gòu)的應(yīng)用程式,從代碼中分離出有用的層,幫助設(shè)計(jì)師和開發(fā)者協(xié)同工作以及提高我們維護(hù)和擴(kuò)展既有程式的能力。視圖(View)“視圖”MVC模式在網(wǎng)站架構(gòu)中十分常見。它允許我們建立一個三層結(jié)構(gòu)的應(yīng)用程式,從代碼中分離出有用的層,幫助設(shè)計(jì)師和開發(fā)者協(xié)同工作以及提高我們維護(hù)和擴(kuò)展既有程式的能力。視圖(View)“視圖”主要指我們送到Web瀏覽器的最終結(jié)果??比如我們的腳本生成的HTML。當(dāng)說到視圖時,很多人想到的是模版,但是把模板方案叫

2、做視圖的正確性是值得懷疑的。對視圖來說,最重要的事情可能是它應(yīng)該是“自我意識(selfaware)”的,視圖被渲染(render)時,視圖的元素能意識到自己在更大框架中的角色。以XML為例,可以說XML在被解析時,DOMAPI有著這樣的認(rèn)知??一個DOM樹里的節(jié)點(diǎn)知道它在哪里和它包含了什么。(當(dāng)一個XML文檔中的節(jié)點(diǎn)用SAX解析時只有當(dāng)解析到該節(jié)點(diǎn)時它才有意義。)絕大多數(shù)模板方案使用簡單的過程語言和這樣的模板標(biāo)簽:<p>{some_text}</p><p>{some_more_text}</p>它們在文檔中沒有意義,它們代表的意義只是PHP將用其他的東西來替換它。如果你同意這種對視圖的松

3、散描述,你也就會同意絕大多數(shù)模板方案并沒有有效的分離視圖和模型。模板標(biāo)簽將被替換成什么存放在模型中。在你實(shí)現(xiàn)視圖時問自己幾個問題:“全體視圖的替換容易嗎?”“實(shí)現(xiàn)一個新視圖要多久?”“能很容易的替換視圖的描述語言嗎?(比如在同一個視圖中用SOAP文檔替換HTML文檔)”模型(Model)模型代表了程序邏輯。(在企業(yè)級程序中經(jīng)常稱為業(yè)務(wù)層(businesslayer))總的來說,模型的任務(wù)是把原有數(shù)據(jù)轉(zhuǎn)換成包含某些意義的數(shù)據(jù),這些數(shù)據(jù)將被視圖所顯示。通常,模型將封裝數(shù)據(jù)查詢,可能通過一些抽象數(shù)據(jù)類(數(shù)據(jù)訪問層)來實(shí)現(xiàn)查詢。舉例說,你希望計(jì)算英國年度降雨量(只是為了給你自己找個好點(diǎn)的度假地)

4、,模型將接收十年中每天的降雨量,計(jì)算出平均值,再傳遞給視圖??刂破鳎╟ontroller)簡單的說控制器是Web應(yīng)用中進(jìn)入的HTTP請求最先調(diào)用的一部分。它檢查收到的請求,比如一些GET變量,做出合適的反饋。在寫出你的第一個控制器之前,你很難開始編寫其他的PHP代碼。最常見的用法是index.php中像switch語句的結(jié)構(gòu):<?phpswitch($_GET['viewpage']){case"news":$page=newNewsRenderer;break;case"links":$page=newLinksRenderer;break;default:$page=newHomeP

5、ageRenderer;break;}$page->display();?>這段代碼混用了面向過程和對象的代碼,但是對于小的站點(diǎn)來說,這通常是最好的選擇。雖然上邊的代碼還可以優(yōu)化??刂破鲗?shí)際上是用來觸發(fā)模型的數(shù)據(jù)和視圖元素之間的綁定的控件。例子這里是一個使用MVC模式的簡單例子。首先我們需要一個數(shù)據(jù)庫訪問類,它是一個普通類。<?php/***AsimpleclassforqueryingMySQL*/classDataAccess{/***Private*$dbstoresadatabaseresource*/var$db;/***Private*$querystoresaqueryre

6、source*/var$query;//Queryresource//!Aconstructor./***ConstuctsanewDataAccessobject*@param$hoststringhostnamefordbserver*@param$userstringdbserveruser*@param$passstringdbserveruserpassword*@param$dbstringdatabasename*/functionDataAccess($host,$user,$pass,$db){$this->db=mysql_pconnect($host,$user,$

7、pass);mysql_select_db($db,$this->db);}//!Anaccessor/***Fetchesaqueryresourcesandstoresitinalocalmember*@param$sqlstringthedatabasequerytorun*@returnvoid*/functionfetch($sql){$this->query=mysql_unbuffered_query($sql,$th

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。