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

PHP實現MVC開發得最簡單的方法――模型

昨天群里有人說使用MVC讓程序多了很多數據庫操作,使得性能下降,這著實讓我吃了一驚。MVC只是一種框架,與數據庫操作沒有任何關系。MVC只是提供一種清晰的編程開發模式,只要你處理的好,是不可能多處很多無謂的數據庫操作的。如果一個MVC讓一個程序員在不知情的情況下多出了很多數據庫操作就絕對不是一個很好的MVC架構。我覺得MVC只要提供一個簡單的開發框架就行了,沒有必要集成很多庫類,庫類最好能讓程序員自己選擇去使用。 
    我自己這個MVC框架的目的就只是實現一個簡單的MVC流程,其他的大家具體情況具體添加。做到真正的小巧、靈活、高效! 
    前幾周我寫了兩篇文章,《php實現MVC開發得最簡單的方法――視圖及模版技術》、《php實現MVC開發得最簡單的方法――單點入口》。今天具體說說如何實現MVC的模型。 
    我沒有深入研究過MVC的理論,對我個人來說,模型就是一個數據庫的封裝,調用模型的方法,你可以得到相應的數據,但實現的細節程序員不需要關心。在實際開發中,很可能一個數據庫的表就對應一個模型。比如說一個用戶信息表userinfo,對應就有一個模型user,通過調用模型user的add()方法你就可以向數據庫添加一條數據,通過select()你就可以實現查詢,通過update就能實現更新。同時模型應該是和具體的數據庫類型無關的,無論你使用的mysql,oracle還是sql server。同時我不推薦在WEB開發中使用ROR,復雜的多表查詢使用SQL語言是多么方便和快捷的事情,而且性能更好。如果一個程序員連SQL的知識都沒有,我不認為他是一個合格的程序員。所以,我在我的模型里面,提供了一個query的方法來實現直接的SQL查詢。 
     下面是模型的一個大概結果。不是完整代碼,完整代碼請見demo包。 

復制代碼 代碼如下:
<?   
class module{   

   var $mysql;//數據庫操作類,可以是mysql,oracle,sql等等   

   var $tbname;//模型對應的表名稱   

   var $debug=false;//是否是調試模式   

   function module($tbname,$db=''){}//構造函數   

   function _setDebug($debug=true){}//開啟或者關閉調試模式   

   function add($row,$tbname=''){}//新增加一條記錄   

   function query($strsql){}//直接查詢sql語句   

   function count($where='',$tbname=''){ }//計數統計   

   function select($where='',$tbname=''){}//查詢   

   function delete($where='',$tbname=''){}//刪除滿足條件的一個記錄   

   function update($set,$where,$tbname=''){}//更新指定記錄   

   function detail($where,$tbname=''){}//詳細顯示一條記錄   
}   
?>  


    在這個模型里面,我是使用數組和數據庫的字段來對應的。早期的phpBEAN里面使用了對象來對應。但后來感覺這種方法在php中不好,而且增加了很多無謂的類。使用數組更加方便,效果更好(php中的數組的確是個好東西,相對Java來說好太多了)。 

    在下面的demo中,我使用了mysql數據庫來演示,其中數據庫操作類改自我原來的一個庫類,詳細請看《修改下以前的庫類,php5->php4》。 

    下面,詳細講解使用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注冊到注冊器里面,關于注冊器的使用的原理,可以看我翻譯的兩篇文章。 
 然后新建一個mysqlController.class.php文件,代碼如下: 

<?  
/**  
  * MVC演示demo  
  * 僅僅實現最基本的MVC功能,不包含安全處理,數據過濾,及其他優化措施。  
  * @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請加上這句  
    }  

    function indexAction(){  
        print_r($this->module->select());//這樣實現了讀取數據  
    }  
}  
?>  

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

php技術PHP實現MVC開發得最簡單的方法――模型,轉載需保留來源!

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

主站蜘蛛池模板: avav去吧| 欧美人妖12p | 国产精品久久久久久久久LI无码 | 野花韩国视频中文播放 | 老头扒开粉缝亲我下面 | 轻点灬大ji巴太粗太双性高h | 动漫人物差差差30分钟免费看 | 欧美老少欢杂交另类 | 一攻多受h嗯啊巨肉bl巨污 | 无码专区无码专区视频网网址 | 我的家庭女教师 | 学生精品国产在线视频 | 王小军怎么了最新消息 | 亚洲理论在线a中文字幕 | 国产精品第十页 | 欧美激情精品久久久久久不卡 | 日本高清天码一区在线播放 | 国产Av影片麻豆精品传媒 | 日韩午夜中文字幕电影 | 与邻居换娶妻子2在线观看 瑜伽牲交AV | 无码一区二区在线欧洲 | 国产精品久久久久久免费字体 | 国产成人刺激视频在线观看 | 手机在线免费观看毛片 | 亚洲一区精品伊人久久伊人 | 夜色资源站国产www在线视频 | 一本一本之道高清在线观看 | 丰满少妇69激情啪啪无码 | 男女边吃奶边做边爱视频 | 亚洲AV无码乱码国产麻豆P | 撕烂衣服扒开胸罩揉爆胸 | 久久综合狠狠综合久久综合88 | 亚洲欧美日韩中字视频三区 | 亚洲AV蜜桃永久无码精品红樱桃 | 美女爽到嗷嗷嗷叫 | 综合激情区视频一区视频二区 | 亚洲 欧美 日本 国产 高清 | caoporn免费视频在线 | 征服丝袜旗袍人妻 | 超碰caoporon最新视频 | 91精品国产色综合久久 |