成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

正確理解PHP開發(fā)MVC模型

開發(fā) 后端
希望大家能夠通過本文介紹的PHP開發(fā)MVC模型的相關(guān)方法能夠充分掌握這一方法的應(yīng)用。提高我們對(duì)PHP語(yǔ)言的認(rèn)知程度。

PHP開發(fā)MVC模型對(duì)于初學(xué)者來說還是不太了解其中的含義。我們?cè)谖恼轮性敿?xì)講述了PHP開發(fā)MVC模型的具體方法,希望對(duì)大家有所幫助。#t#

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

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

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

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

下面是PHP開發(fā)MVC模型的一個(gè)大概結(jié)果。不是完整代碼,完整代碼請(qǐng)見demo包。

  1. < ?   
  2. class module{   
  3. var $mysql;//數(shù)據(jù)庫(kù)操作類,
    可以是mysql,oracle,sql等等   
  4. var $tbname;//模型對(duì)應(yīng)的表名稱   
  5. var $debug=false;//是否是調(diào)試模式   
  6. function module($tbname,$db=''){}
    //構(gòu)造函數(shù)   
  7. function _setDebug($debug=true){}
  8. //開啟或者關(guān)閉調(diào)試模式   
  9. function add($row,$tbname=''){}
  10. //新增加一條記錄   
  11. function query($strsql){}//直接查詢sql語(yǔ)句   
  12. function count($where='',$tbname=''){ }
  13. //計(jì)數(shù)統(tǒng)計(jì)   
  14. function select($where='',$tbname=''){}
  15. //查詢   
  16. function delete($where='',$tbname=''){}
  17. //刪除滿足條件的一個(gè)記錄   
  18. function update($set,$where,$tbname=''){}
  19. //更新指定記錄   
  20. function detail($where,$tbname=''){}
  21. //詳細(xì)顯示一條記錄   
  22. }   
  23. ?>  

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

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

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

 

  1. < ?   
  2. require_once(SITE_PATH.'/
    libs/phpbean.class.php');   
  3. require_once(SITE_PATH.'/
    libs/mysql.class.php');   
  4. $phpbean=new phpbean();   
  5. global $phpbean;   
  6. $mysql=new mysql("localhost"
    ,"****","****","52site");   
  7. $phpbean->register('db',$mysql);   
  8. unset($mysql);   
  9. ?>  

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

 

  1. < ?   
  2. /**   
  3. * MVC演示demo   
  4. * 僅僅實(shí)現(xiàn)最基本的MVC功能,不包含安全處理
    ,數(shù)據(jù)過濾,及其他優(yōu)化措施。   
  5. * @author:feifengxlq   
  6. * @since:2007-1-24   
  7. * @copyright http://www.phpobject.net/blog/   
  8. */   
  9. class mysqlController   
  10. {   
  11. var $module;   
  12. function mysqlController(){   
  13. require_once(SITE_PATH.'/libs/module.class.php');   
  14. $this->module=new module('52site_siteinfo');
    //52site_siteinfo為表名稱   
  15. $this->module->query("set names 'gb2312'");
    //如果是MYSQL5請(qǐng)加上這句   
  16. }   
  17. function indexAction(){   
  18. print_r($this->module->select());//這樣實(shí)現(xiàn)了讀取數(shù)據(jù)   
  19. }   
  20. }   
  21. ?>  

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

以后我會(huì)寫一個(gè)具體的demo來說明如何使用PHP開發(fā)MVC模型的其他方法,比如說查詢、更新、增加、分頁(yè)列表、多表連查等等。

責(zé)任編輯:曹凱 來源: 百度博客
相關(guān)推薦

2009-12-09 14:04:45

PHP include

2009-12-03 18:07:47

PHP轉(zhuǎn)義

2009-12-07 14:53:13

PHP抽象類應(yīng)用

2009-12-04 17:16:41

PHP析構(gòu)函數(shù)

2009-06-18 10:29:24

Hibernate I

2009-12-14 17:48:46

Ruby String

2020-01-07 15:10:32

Linuxinode命令

2010-07-20 12:35:33

SQL Server索

2010-02-01 10:54:37

C++框架

2009-12-03 15:31:30

PHP獲取顯示數(shù)據(jù)庫(kù)數(shù)

2024-01-29 00:35:00

Go并發(fā)開發(fā)

2023-12-27 19:52:08

Go模塊命令

2009-04-20 09:09:46

PHP錯(cuò)誤信息錯(cuò)誤代碼

2010-02-04 15:05:00

C++ cpuid指令

2010-01-18 17:29:35

VB.NET函數(shù)調(diào)用

2009-12-16 10:33:31

Ruby更新文件

2009-12-17 11:36:55

Ruby輸入輸出

2013-08-06 10:40:38

大數(shù)據(jù)數(shù)據(jù)

2009-12-16 17:00:43

Ruby on Rai

2010-08-05 15:40:07

DB2快照函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品日韩欧美一区二区三区 | 欧美黄色免费网站 | 成人高潮片免费视频欧美 | 日韩喷潮| 国产精品乱码一区二三区小蝌蚪 | 91国内视频在线 | 亚洲男女视频在线观看 | 色综合一区二区三区 | 丁香一区二区 | 亚洲精品视频免费看 | av网站在线播放 | 亚洲欧洲日韩精品 中文字幕 | 日日摸日日爽 | 日日夜夜精品免费视频 | 色综合一区二区 | 国产免费观看一级国产 | 久久亚洲欧美日韩精品专区 | 国产一区二区三区在线 | 国产精品污污视频 | 午夜激情国产 | 国产精品视频免费播放 | 久久久性色精品国产免费观看 | 全免费a级毛片免费看视频免费下 | 国产精品美女在线观看 | 成人在线免费电影 | 黄色免费网| 一区二区三区视频在线观看 | 99re热精品视频 | 成人影院免费视频 | 欧美黑人国产人伦爽爽爽 | 亚洲国产精品一区二区第一页 | 蜜桃av一区二区三区 | 粉嫩av| 男女视频在线观看免费 | 亚洲精品国产第一综合99久久 | 亚洲品质自拍视频网站 | 精品国产乱码久久久久久1区2区 | 久久精品国产精品青草 | 成人欧美一区二区三区黑人孕妇 | 国产一区二区三区在线看 | 欧美亚洲网站 |