国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

什么是mvc框架?php開發(fā)mvc框架的方法(附代碼)

2020-03-22 19:42:58
字體:
供稿:網(wǎng)友
PHP開發(fā)MVC框架對于剛接觸php的人來說可能還并不能夠理解它的含義,不過沒有關(guān)系,今天的這篇文章我將具體和你們說說我對mvc框架的理解以及php開發(fā)mvc框架的方法。

使用MVC讓程序多了很多數(shù)據(jù)庫操作,使得性能下降,這著實(shí)讓我吃了一驚。MVC只是一種框架,與數(shù)據(jù)庫操作沒有任何關(guān)系。MVC只是提供一種清晰的編程開發(fā)模式,只要你處理的好,是不可能多處很多無謂的數(shù)據(jù)庫操作的。如果一個(gè)MVC讓一個(gè)程序員在不知情的情況下多出了很多數(shù)據(jù)庫操作就絕對不是一個(gè)很好的MVC架構(gòu)。我覺得MVC只要提供一個(gè)簡單的開發(fā)框架就行了,沒有必要集成很多庫類,庫類最好能讓程序員自己選擇去使用。

我沒有深入研究過MVC的理論,對我個(gè)人來說,模型就是一個(gè)數(shù)據(jù)庫的封裝,調(diào)用模型的方法,你可以得到相應(yīng)的數(shù)據(jù),但實(shí)現(xiàn)的細(xì)節(jié)程序員不需要關(guān)心。在實(shí)際開發(fā)中,很可能一個(gè)數(shù)據(jù)庫的表就對應(yīng)一個(gè)模型。

比如說一個(gè)用戶信息表userinfo,對應(yīng)就有一個(gè)模型user,通過調(diào)用模型user的add()方法你就可以向數(shù)據(jù)庫添加一條數(shù)據(jù),通過select()你就可以實(shí)現(xiàn)查詢,通過update就能實(shí)現(xiàn)更新。同時(shí)模型應(yīng)該是和具體的數(shù)據(jù)庫類型無關(guān)的,無論你使用的mysql,oracle還是sql server。

同時(shí)我不推薦在WEB開發(fā)中使用ROR,復(fù)雜的多表查詢使用SQL語言是多么方便和快捷的事情,而且性能更好。如果一個(gè)程序員連SQL的知識都沒有,我不認(rèn)為他是一個(gè)合格的程序員。所以,我在我的模型里面,提供了一個(gè)query的方法來實(shí)現(xiàn)直接的SQL查詢。

下面是PHP開發(fā)MVC框架的一個(gè)大概結(jié)果。

 ? html' target='_blank'>class module{ var $mysql;//數(shù)據(jù)庫操作類,可以是mysql,oracle,sql等等 var $tbname;//模型對應(yīng)的表名稱 var $debug=false;//是否是調(diào)試模式 function module($tbname,$db= ){}//構(gòu)造函數(shù) function _setDebug($debug=true){}//開啟或者關(guān)閉調(diào)試模式 function add($row,$tbname= ){}//新增加一條記錄 function query($strsql){}//直接查詢sql語句 function count($where= ,$tbname= ){ }//計(jì)數(shù)統(tǒng)計(jì) function select($where= ,$tbname= ){}//查詢 function delete($where= ,$tbname= ){}//刪除滿足條件的一個(gè)記錄 function update($set,$where,$tbname= ){}//更新指定記錄 function detail($where,$tbname= ){}//詳細(xì)顯示一條記錄 ? 

在這個(gè)模型里面,我是使用數(shù)組和數(shù)據(jù)庫的字段來對應(yīng)的。早期的PHPBEAN里面使用了對象來對應(yīng)。但后來感覺這種PHP開發(fā)MVC模型的方法在PHP中不好,而且增加了很多無謂的類。使用數(shù)組更加方便,效果更好(PHP中的數(shù)組的確是個(gè)好東西,相對JAVA來說好太多了)。

在下面的demo中,我使用了mysql數(shù)據(jù)庫來演示,其中數(shù)據(jù)庫操作類改自我原來的一個(gè)庫類。

下面,詳細(xì)講解使用demo。^_^
在原來的的包的index.php里面增加

 ? require_once(SITE_PATH. /libs/phpbean.class.php require_once(SITE_PATH. /libs/mysql.class.php $phpbean=new phpbean(); global $phpbean; $mysql=new mysql( localhost , **** , **** , 52site $phpbean- register( db ,$mysql); unset($mysql); ? 

這段PHP開發(fā)MVC模型代碼主要是把MYSQL注冊到注冊器里面,關(guān)于注冊器的使用的原理,可以看我翻譯的兩篇文章。
然后新建一個(gè)mysqlController.class.php文件,代碼如下:

 ? * MVC演示demo * 僅僅實(shí)現(xiàn)最基本的MVC功能,不包含安全處理,數(shù)據(jù)過濾,及其他優(yōu)化措施。 * @author:feifengxlq * @since:2007-1-24 * @copyright http://www.survivalescaperooms.com/class mysqlController var $module; function mysqlController(){ require_once(SITE_PATH. /libs/module.class.php $this- module=new module( 52site_siteinfo //52site_siteinfo為表名稱 $this- module- query( set names gb2312 //如果是MYSQL5請加上這句 function indexAction(){ print_r($this- module- select());//這樣實(shí)現(xiàn)了讀取數(shù)據(jù) ? 

上面首先是控制器的構(gòu)造函數(shù)里面,加入一個(gè)模型。然后在indexAction里面調(diào)用模型的方法來顯示數(shù)據(jù)。這樣就實(shí)現(xiàn)了最簡單的查詢列表。

相關(guān)推薦:

搭建自己的PHP MVC框架

你了解php中的MVC嗎?

以上就是什么是mvc框架?php開發(fā)mvc框架的方法(附代碼)的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴安盟| 黄陵县| 安阳县| 搜索| 新邵县| 游戏| 遂平县| 绵阳市| 邹平县| 穆棱市| 仁怀市| 洞头县| 清原| 东阿县| 垫江县| 屯留县| 合川市| 岱山县| 德格县| 屯留县| 肇州县| 南漳县| 修文县| 呼图壁县| 鄂伦春自治旗| 车致| 永嘉县| 团风县| 德安县| 汝城县| 延津县| 文化| 泸水县| 江油市| 顺昌县| 胶南市| 万源市| 特克斯县| 嘉义县| 和林格尔县| 昭平县|