正确理解PHP开发MVC模型

PHP开发MVC模型对于初学者来说还是不太了解其中的含义。我们在文章中详细讲述了PHP开发MVC模型的具体方法,希望对大家有所帮助。#t#

创新互联专注于安阳县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供安阳县营销型网站建设,安阳县网站制作、安阳县网页设计、安阳县网站官网定制、小程序设计服务,打造安阳县网络公司原创品牌,更为您提供安阳县网站排名全网营销落地服务。

使用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. ?> 

在这个模型里面,我是使用数组和数据库的字段来对应的。早期的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. var $module; 
  11. function mysqlController(){ 
  12. require_once(SITE_PATH.'/libs/module.class.php'); 
  13. $this->module=new module('52site_siteinfo');
    //52site_siteinfo为表名称 
  14. $this->module->query("set names 'gb2312'");
    //如果是MYSQL5请加上这句 
  15. function indexAction(){ 
  16. print_r($this->module->select());//这样实现了读取数据 
  17. ?> 

上面首先是控制器的构造函数里面,加入一个模型。然后在indexAction里面调用模型的方法来显示数据。这样就实现了最简单的查询列表。

以后我会写一个具体的demo来说明如何使用PHP开发MVC模型的其他方法,比如说查询、更新、增加、分页列表、多表连查等等。

文章名称:正确理解PHP开发MVC模型
文章转载:http://www.csdahua.cn/qtweb/news7/545057.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网