亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

淺析PHP程序設計中的MVC編程思想

2020-03-22 20:26:55
字體:
來源:轉載
供稿:網友
PHP的MVC編程思想目前已經被廣泛使用于各種大型項目的開發,很多成熟的MVC框架也逐漸被大家所熟知并被廣泛應用于各類項目中,比較常見的如ThinkPHP、codeigniter、Symfony、yii、cakePHP等等。本文就來簡述一下php的MVC程序設計思想。一、什么是MVC簡單的說就是將網站源碼分類、分層。
MVC三個字母的含義:
M:Model 模型,負責數據庫操作。
V:View 視圖,負責調用Model調取數據,再調用模板,展示出最終效果。
C:Controller 控制器,程序的入口,決定改調用哪個View,并告訴View該做什么。
如此說來,程序的執行順序是C-V-M 或 C-M ,和MVC的名字正好相反。二、為什么要MVC1.能使網站程序物理結構更合理。當用PHP建設一個網站的時候,最笨的方法,你可能把每個頁面建成一個PHP文件。如果你的網站只有index.php,menu.php.article.php 三個頁面,那你可以不用MVC,但我們做一般的網站的時候,動輒幾十個頁面,把所有頁面放在根目錄顯然不是我們所能接受的,于是你需要一個合理的思想去將你的代碼分類,按功能把他們分成不同的目錄,且由程序智能的載入調用,這就是MVC要幫助你做的。2.使代碼更容易維護。我們再來看單個頁面,最笨的方法,就是PHP代碼與HTML代碼混合,這顯然不夠好,你在維護網站的時候不得不區分哪里是PHP,哪里是HTML,這對于一個程序員來說,簡直是災難。于是很多人就使用Smarty,這樣就可以將“數據處理”與“頁面展示”分開來,這樣做的確不錯,也有很多人正在這么做,但這還不是MVC,MVC要做的就是將“數據處理”再分為“邏輯處理”與“數據庫操作”,這就是所說的分層。
這樣當你的html' target='_blank'>程序錯誤或想要修改的時候,就變得很輕松了,當頁面顯示錯誤的時候,你就去檢查V或模板文件;當邏輯有問題的時候,你就去檢查C和V;當你數據庫操作錯誤就去檢查M。
其實MVC一般要把PHP的一個頁面分割為4個頁面,分別是C,V,M,模板。各司其職,方便管理。3.有利于代碼復用。MVC會把一般會把一個大的功能放在一個目錄下,也就是由一個C去管理。
例如要做一個含有會員系統的網站,我們就可以把會員相關的代碼都放到user目錄里,由User_Controller統一管理,當我們另一個網站也需要會員系統的時候,我們就可以直接把這個目錄復制過去,修改一下接口就可以了。三、PHP實現MVC的思路我們需要三個基類:Controller、View、Model ,然后不同的C、V、M分別繼承他們就有對應的屬性與方法了,如果這里你不理解,可以去看看面向對象的書。這里給大家提供一種MVC基類的設計思路,僅供參考:1. Controller類的設計一個main()方法,供程序調用,主要是通過get和post變量決定該如何處理。
一個getModel($model)方法,在需要調用數據庫的時候,調用對應目錄的M。
一個display($view)方法,在main()方法中調用,載入對應的V,并掉應V的main()方法;2.View類的設計與Controller很相似一個main()方法,當C載入V的時候調用這個方法,使程序能繼續執行下去。
一個getModel($model)方法,在需要調用數據庫的時候,調用對應目錄的M。
一個display($template),調用對應的模板文件,并把數據傳遞給模板。3.Model類的設計可以定義一些屬性,例如要操作那些表,操作那些字段等。
一個getDB()方法,獲得一個數據庫類的實例,(數據庫類一般都是用單件模式設計的)
一個load()方法,載入一個數據。
一個add()方法,可以根據定義好的屬性自動構造SQL語句,并執行插入操作。
一個eidt()方法,同上,但執行修改操作。
一個del()方法,同上,但執行刪除操作。
為了能使新手更好的理解我這個思路的工作原理,我們現在模擬一個用戶登錄的場景,看看MVC是如何工作的。
現在假設,所有的數據都提交給index.php,第一步:
我們提交各get變量,告訴index.php該用哪個C,例如可以這樣index.php?controller=user
然后index接收到get變量,什么也不需要做,直接找到/user/controller.php,把所有數據丟給他,本來GET和POST就是全局的,所以index.php也不需要做什么,直接調用C的main函數就可以了,到此index.php的任務完成。第二步:
C的main函數開始執行,檢查變量,發現用戶要執行的登錄操作(很簡單,你post個變量do=login就可以了),于是調用getModel,載入對應的M類(例如/user/models/model.php),并實例化, 調用實例的load方法,載入該用戶的數據資料,判斷是否與用戶提交的密碼一致,如果提交的數據不正確header跳轉到出錯頁面,如果正確,調用display()方法,載入對應的V(例如/user/views/details.php),并實例化,調用其main()函數,進入第三步。到此C的任務已完成,第二不操作均在main函數中進行。第三步:
你可以選擇調用getModel()載入M,重寫調取數據,也可以在C實例化V的時候,把參數傳過來(例如SESSION),當V已經確定得到數據以后,display(),載入模板,MVC執行完畢。
當然,由于字數與精力限制,這里寫的只是非常簡要的概括,實際實施的時候要考慮很多細節,但我設計MVC的時候,大概思路就是這樣,也用到了實際中,感覺良好。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费一线在线观看| 久久伊人色综合| 中文字幕久久亚洲| 久久精品国产亚洲| 91po在线观看91精品国产性色| 色综合天天综合网国产成人网| 欧美极品xxxx| 一区二区三欧美| 日韩免费高清在线观看| 久久久国产精彩视频美女艺术照福利| 国产一区二区三区高清在线观看| 亚洲成色777777女色窝| 高清欧美性猛交| 久久99热精品这里久久精品| 中文字幕精品国产| 久久久亚洲国产天美传媒修理工| 91美女片黄在线观看游戏| 精品国产鲁一鲁一区二区张丽| 清纯唯美亚洲激情| 一级做a爰片久久毛片美女图片| 在线观看亚洲视频| 97在线视频国产| 亚洲成人激情小说| 日韩av三级在线观看| 午夜免费在线观看精品视频| 成人妇女免费播放久久久| 九九视频直播综合网| 亚洲高清一二三区| 欧美黑人巨大精品一区二区| 日韩亚洲欧美中文高清在线| 欧美日韩午夜剧场| 91社区国产高清| 亚洲一区二区三区视频播放| 日韩中文娱乐网| 国产精品久久久久999| 国产精品久久久久久久app| 日韩视频免费观看| 欧美成人精品一区二区| 亚洲一区二区精品| 国产亚洲aⅴaaaaaa毛片| 亚洲精美色品网站| 精品露脸国产偷人在视频| 国产成人在线视频| 亚洲男女自偷自拍图片另类| 26uuu另类亚洲欧美日本一| 欧美日韩午夜激情| 中文字幕av日韩| www.亚洲一区| 成人黄色在线免费| 欧美特级www| 午夜精品美女自拍福到在线| 精品久久香蕉国产线看观看亚洲| 成人精品久久久| 91社区国产高清| 日韩最新av在线| 日韩精品小视频| 亚洲日本欧美中文幕| 美女福利精品视频| 欧美性猛交xxxxx水多| 大胆人体色综合| 美女av一区二区| 日韩男女性生活视频| 亚洲国产精品女人久久久| 日韩在线免费av| 国产精品久久久久久久久久免费| 亚洲精品国产欧美| 久久精品人人做人人爽| 欧美性受xxxx黑人猛交| 亚洲成**性毛茸茸| 欧美电影在线观看完整版| 青青青国产精品一区二区| 亚洲国产精彩中文乱码av在线播放| 成人自拍性视频| 亚洲精品国产精品久久清纯直播| 国产精品美女主播在线观看纯欲| 国产精品欧美一区二区三区奶水| 久久久亚洲影院| 国产欧美欧洲在线观看| 91精品国产高清久久久久久久久| 国产精品美女久久久免费| 欧美性猛交xxxx乱大交3| 欧美日韩第一视频| 欧美日韩亚洲91| 亚洲美女自拍视频| 在线观看精品国产视频| 国产精品亚洲视频在线观看| 亚洲视频欧美视频| 日韩第一页在线| 91日本在线视频| 国产精品久久久久久久久久久久久| 青草青草久热精品视频在线观看| 亚洲欧美中文字幕| 亚洲free嫩bbb| 一区二区三区日韩在线| 精品久久久久久中文字幕| 日韩欧美国产黄色| 91美女片黄在线观看游戏| 欧美激情一区二区三区成人| 狠狠色狠狠色综合日日小说| 日韩成人在线电影网| 欧美第一淫aaasss性| 成人激情视频网| 亚洲精品视频久久| 亚洲国产精品悠悠久久琪琪| **欧美日韩vr在线| 国产91精品久久久久久| 欧美激情亚洲视频| 国产美女久久精品香蕉69| 国产亚洲精品美女久久久久| 亚洲在线第一页| 一区二区欧美日韩视频| 高清欧美性猛交xxxx黑人猛交| 欧美在线视频一区| 精品福利在线观看| 国产精品av在线播放| 成人性生交大片免费观看嘿嘿视频| 国产精品久久久久av免费| 欧美日韩在线第一页| 91欧美视频网站| 成人欧美一区二区三区黑人孕妇| 久久久精品久久久| 91国内免费在线视频| 午夜精品一区二区三区视频免费看| 午夜精品在线视频| 国产在线视频不卡| 欧美成在线视频| 日日噜噜噜夜夜爽亚洲精品| 久久久亚洲影院你懂的| 欧美裸体男粗大视频在线观看| 欧美老女人xx| 色狠狠久久aa北条麻妃| 欧美午夜性色大片在线观看| 欧美精品www在线观看| 亚洲欧美在线一区二区| 久久精品亚洲94久久精品| 国产成人综合av| 国产精品麻豆va在线播放| 日韩大陆欧美高清视频区| 日韩在线视频播放| 国产盗摄xxxx视频xxx69| 日本精品视频在线| 国产女精品视频网站免费| 欧美成人一二三| 中文字幕日韩欧美精品在线观看| 青青青国产精品一区二区| 91在线无精精品一区二区| 亚洲伊人一本大道中文字幕| 91超碰中文字幕久久精品| 国产欧美精品va在线观看| 日本久久久久亚洲中字幕| 国产99在线|中文| 欧美激情欧美狂野欧美精品| 国产精品第三页| 亚洲国产精品热久久| 色综合久久中文字幕综合网小说| 91精品国产91| 91精品国产91久久久久久最新| 欧美做受高潮电影o| 亚洲网站在线看| 精品免费在线视频| 影音先锋欧美精品| 国产精品永久免费视频| 亚洲精品福利在线观看| 亚洲欧美日韩爽爽影院|