文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么正确理解PHP开发MVC模型

2023-06-17 19:37

关注

这期内容当中小编将会给大家带来有关怎么正确理解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. class mysqlController   

  4. {   

  5. var $module;   

  6. function mysqlController(){   

  7. require_once(SITE_PATH.'/libs/module.class.php');   

  8. $this->module=new module('52site_siteinfo');
    //52site_siteinfo为表名称   

  9. $this->module->query("set names 'gb2312'");
    //如果是MYSQL5请加上这句   

  10. }   

  11. function indexAction(){   

  12. print_r($this->module->select());//这样实现了读取数据   

  13. }   

  14. }   

  15. ?>  

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

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

上述就是小编为大家分享的怎么正确理解PHP开发MVC模型了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯