91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么正確理解PHP開發MVC模型

發布時間:2021-10-18 16:56:04 來源:億速云 閱讀:141 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關怎么正確理解PHP開發MVC模型,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

PHP開發MVC模型對于初學者來說還是不太了解其中的含義。

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

我沒有深入研究過MVC的理論,對我個人來說,模型就是一個數據庫的封裝,調用模型的方法,你可以得到相應的數據,但實現的細節程序員不需要關心。在實際開發中,很可能一個數據庫的表就對應一個模型。

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

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

下面是PHP開發MVC模型的一個大概結果。不是完整代碼,完整代碼請見demo包。

  1. < ?   

  2. class module{   

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

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

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

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

  7. function _setDebug($debug=true){}

  8. //開啟或者關閉調試模式   

  9. function add($row,$tbname=''){}

  10. //新增加一條記錄   

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

  12. function count($where='',$tbname=''){ }

  13. //計數統計   

  14. function select($where='',$tbname=''){}

  15. //查詢   

  16. function delete($where='',$tbname=''){}

  17. //刪除滿足條件的一個記錄   

  18. function update($set,$where,$tbname=''){}

  19. //更新指定記錄   

  20. function detail($where,$tbname=''){}

  21. //詳細顯示一條記錄   

  22. }   

  23. ?>  

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

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

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

  1. < ?   

  2. /**   

  3. * MVC演示demo   

  4. * 僅僅實現最基本的MVC功能,不包含安全處理
    ,數據過濾,及其他優化措施。   

  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請加上這句   

  16. }   

  17. function indexAction(){   

  18. print_r($this->module->select());//這樣實現了讀取數據   

  19. }   

  20. }   

  21. ?>  

上面首先是控制器的構造函數里面,加入一個模型。然后在indexAction里面調用模型的方法來顯示數據。這樣就實現了最簡單的查詢列表。

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

上述就是小編為大家分享的怎么正確理解PHP開發MVC模型了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗源县| 宣恩县| 尤溪县| 唐海县| 梧州市| 临邑县| 盐山县| 博野县| 新营市| 合川市| 德惠市| 伽师县| 义乌市| 库车县| 桐梓县| 贡山| 乐亭县| 郯城县| 长春市| 龙川县| 屏东市| 沧源| 阿克陶县| 太湖县| 金阳县| 葫芦岛市| 祁连县| 鄂尔多斯市| 七台河市| 将乐县| 霍城县| 宜宾县| 绥化市| 会宁县| 玛纳斯县| 扎囊县| 台前县| 寿阳县| 东源县| 大名县| 民权县|