PHP實現MVC開發得最簡單的方法,模型的思考_PHP教程

來源:互聯網
上載者:User

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包。

 

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

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

下面,詳細講解使用demo。^_^
在原來的的包的index.php裡面增加

register('db',$mysql); unset($mysql); ?> 

這段代碼主要是把MYSQL註冊到註冊器裡面,關於註冊器的使用的原理,可以看我翻譯的兩篇文章。
然後建立一個mysqlController.class.php檔案,代碼如下:

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打造屬於自己的MVC架構簡單案例,提供思路,僅供參考
  • php通過socket擷取網頁內容的簡單樣本
  • 關於PHP中MVC的一點開發心得
  • PHP獲得指定日期所在星期,所在月的第一天和最後一天
  • 用PHP函數memory_get_usage擷取當前PHP記憶體消耗量以實現程式的效能最佳化
  • thinkphp開發技巧總結
  • PHP在引號前面添加反斜線的原因及PHP去除反斜線的辦法,三種辦法關閉php魔術引號
  • PHP擷取當前日期前30天的日期列表

http://www.bkjia.com/PHPjc/976852.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/976852.htmlTechArticlePHP實現MVC開發得最簡單的方法,模型的思考 昨天群裡有人說使用MVC讓程式多了很多資料庫操作,使得效能下降,這著實讓我吃了一驚。MV...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.