天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP實(shí)現(xiàn)MVC開發(fā)得最簡(jiǎn)單的方法――模型

昨天群里有人說使用MVC讓程序多了很多數(shù)據(jù)庫操作,使得性能下降,這著實(shí)讓我吃了一驚。MVC只是一種框架,與數(shù)據(jù)庫操作沒有任何關(guān)系。MVC只是提供一種清晰的編程開發(fā)模式,只要你處理的好,是不可能多處很多無謂的數(shù)據(jù)庫操作的。如果一個(gè)MVC讓一個(gè)程序員在不知情的情況下多出了很多數(shù)據(jù)庫操作就絕對(duì)不是一個(gè)很好的MVC架構(gòu)。我覺得MVC只要提供一個(gè)簡(jiǎn)單的開發(fā)框架就行了,沒有必要集成很多庫類,庫類最好能讓程序員自己選擇去使用。 
    我自己這個(gè)MVC框架的目的就只是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的MVC流程,其他的大家具體情況具體添加。做到真正的小巧、靈活、高效! 
    前幾周我寫了兩篇文章,《php實(shí)現(xiàn)MVC開發(fā)得最簡(jiǎn)單的方法――視圖及模版技術(shù)》、《php實(shí)現(xiàn)MVC開發(fā)得最簡(jiǎn)單的方法――單點(diǎn)入口》。今天具體說說如何實(shí)現(xiàn)MVC的模型。 
    我沒有深入研究過MVC的理論,對(duì)我個(gè)人來說,模型就是一個(gè)數(shù)據(jù)庫的封裝,調(diào)用模型的方法,你可以得到相應(yīng)的數(shù)據(jù),但實(shí)現(xiàn)的細(xì)節(jié)程序員不需要關(guān)心。在實(shí)際開發(fā)中,很可能一個(gè)數(shù)據(jù)庫的表就對(duì)應(yīng)一個(gè)模型。比如說一個(gè)用戶信息表userinfo,對(duì)應(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的知識(shí)都沒有,我不認(rèn)為他是一個(gè)合格的程序員。所以,我在我的模型里面,提供了一個(gè)query的方法來實(shí)現(xiàn)直接的SQL查詢。 
     下面是模型的一個(gè)大概結(jié)果。不是完整代碼,完整代碼請(qǐng)見demo包。 

復(fù)制代碼 代碼如下:
<?   
class module{   

   var $mysql;//數(shù)據(jù)庫操作類,可以是mysql,oracle,sql等等   

   var $tbname;//模型對(duì)應(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ù)庫的字段來對(duì)應(yīng)的。早期的phpBEAN里面使用了對(duì)象來對(duì)應(yīng)。但后來感覺這種方法在php中不好,而且增加了很多無謂的類。使用數(shù)組更加方便,效果更好(php中的數(shù)組的確是個(gè)好東西,相對(duì)Java來說好太多了)。 

    在下面的demo中,我使用了mysql數(shù)據(jù)庫來演示,其中數(shù)據(jù)庫操作類改自我原來的一個(gè)庫類,詳細(xì)請(qǐng)看《修改下以前的庫類,php5->php4》。 

    下面,詳細(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);  
?>  

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

<?  
/**  
  * MVC演示demo  
  * 僅僅實(shí)現(xiàn)最基本的MVC功能,不包含安全處理,數(shù)據(jù)過濾,及其他優(yōu)化措施。  
  * @author:feifengxlq  
  * @since:2007-1-24  
  * @copyright http://www.phpobject.NET/blog/  
*/  
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請(qǐng)加上這句  
    }  

    function indexAction(){  
        print_r($this->module->select());//這樣實(shí)現(xiàn)了讀取數(shù)據(jù)  
    }  
}  
?>  

     上面首先是控制器的構(gòu)造函數(shù)里面,加入一個(gè)模型。然后在indexAction里面調(diào)用模型的方法來顯示數(shù)據(jù)。這樣就實(shí)現(xiàn)了最簡(jiǎn)單的查詢列表。你可以通過這個(gè)地址來查看你的結(jié)果http://path/to/yoursite/mv... 
     以后我會(huì)寫一個(gè)具體的demo來說明如何使用模型的其他方法,比如說查詢、更新、增加、分頁列表、多表連查等等。

php技術(shù)PHP實(shí)現(xiàn)MVC開發(fā)得最簡(jiǎn)單的方法――模型,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 亚洲视频在线看 | lesbabes性欧美| 成人综合在线视频免费观看完整版 | 日日啪无需播放器 | 亚洲免费综合色视频 | 色欲狠狠躁天天躁无码中文字幕 | 九九视频在线观看视频6 | 精品午夜国产福利观看 | 青青草原国产 | 抽插喷S骚爽去了H | 国产免费啪嗒啪嗒视频看看 | 性xxxx直播放免费 | 污污内射久久一区二区欧美日韩 | 国产AV精品无码免费看 | 国产99视频精品免费播放 | 麻豆一区二区免费播放网站 | 69人体阴展网 | 日韩av片无码一区二区不卡电影 | 亚洲精品国产精麻豆久久99 | 强壮的公次次弄得我高潮韩国电影 | 久久综合视频网站 | 97免费人妻在线观看 | 99RE6这里只有精品国产AV | 国产精人妻无码一区麻豆 | 国产亚洲999精品AA片在线爽 | 办公室丝袜老师在线观看 | 97精品少妇偷拍AV | 深夜草逼逼 | 在线看片韩国免费人成视频 | 欧美97色伦影院在线观看 | 亚州三级久久电影 | 国产中的精品AV一区二区 | 日产亚洲一区二区三区 | 折磨比基尼美女挠肚子 | 国产睡熟迷奷系列精品 | 特黄AAAAAAA片免费视频 | 欧美激情性AAAAA片欧美 | 国产AV无码一二三区视频 | 动漫女主被扒开双腿羞辱 | 囯产精品久久久久久久久免费蜜桃 | 色偷偷超碰97人人澡人人 |