页:
[1]
| gaoshikao | 2008-2-18 03:34 AM |
|
PHP之MVC模式
想做一套自己的通用php程序,这几天在网上搜集比较好的框架.总的来说,有两种思路:一种是面向过程,一种是面向对象.面向过程也许是大部分人的选择,而面向过程就必须要涉及最新的热门话题:php的MVC模式.
有人说php的mvc模式是一个极耗资源的M+差别不大的V+可有可无的C,所以不建议使用(跟java比较,来自[url]http://www.phpe.net/articles/390.shtml)[/url],而有的人却极力推崇,认为是做大中型网站的首选,也无怪出了很多的这类开源框架,比如zend framework,thinkphp,CakePHP等.以前写代码就是纯粹的面向过程,虽然以前接触过java的面向对象的东西,但是初次看起来还确实有点费力.我比较喜欢thinkphp( [url]http://thinkphp.cn/)[/url],原因是它做的很认真,而且风格我也比较喜欢,研究了两天,终于搞出点名堂.若有志同道合的朋友可以和我共同探讨.QQ:272164179
但是心理一直有个疑问:PHP的MVC模式是否确实比面向过程能提高运行效率(不包括开发效率)吗?MVC是不是未来php开发的一种趋势呢?,大家怎么看呢?
听了大家的意见,我决定采用mvc开发,我比较喜欢thinkphp,正在研究,大家呢?有没有好的介绍和经验?现在thinkphp还是有很多问题...
[[i] 本帖最后由 gaoshikao 于 2008-2-18 12:15 PM 编辑 [/i]] |
| sanshi0815 | 2008-2-18 03:47 AM |
|
| 运行效率是相对的,如果绝对的来比,oo的确不如过程化! |
|
| 要看 你怎么 舍取了 少了一点运行效率 会带来维护和开发的 效率。。 |
|
面向对象的效率 不然 面向过程 这是铁的事实。
但是面向对象的开发效率 远远超出面向过程的效率。
尤其是团队合作的时候,极为提现。 |
| sanders_yao | 2008-2-18 07:53 AM |
|
开发效率要看你代码的重用次数 如果一个类型被重用到很多过程中 那么还值得
如果一个类型就只有一个过程会被实例化 我感觉oo的意义就不大了 |
| seakingx | 2008-2-19 02:30 AM |
|
我谈谈我的看法,我觉得不论什么工具,方法,只要能最有效地实现工作要求,就是可用的,
我在网站程序部分所做的工作,基本上都是些小网站,就是小企业入门级的网站, 自己弄了一个内容管理的小系统(类似于cms), 这个系统,我全部都是用函数来完成的,开发的时间比较早, 所以就没用用到模版的概念, 只是把各种代码 都过程化,函数化。 每建立一个新的后台的时候,就是重新在新站点生成相关的表,可能改改数据库的结构, 然后复制后台文件到新站就可以了。
对于前台, 觉得用模版还是省事些,毕竟我不懂美工, 而且如果没有模版的标准, 美工先做好页面,程序员再加代码, 这个工作会很麻烦,好像很多美工都没有程序逻辑概念。 对于入门级的网站, 前台程序无非就是列表,详细信息,查询, 这些和数据库读取有关的东西我都定义成一个类, 网站每一个内容的显示, 定义内容相关的读取,用的代码都基本一样的, 调用对应的模版(HTML)文件就可以了。
这是一个php初级程序员( 看村里的牛人写的标准,我还没达到初级,厚着脸称自己为初级)对MVC的理解,欢迎大家批评指正。
[[i] 本帖最后由 seakingx 于 2008-2-19 10:31 AM 编辑 [/i]] |
| gaoshikao | 2008-2-19 03:14 AM |
|
| 我学习php有一年半的时间了 虽然采用过程化的程序能很快完成工作 但是在心底我仍旧希望能使代码尽善尽美 所以一直在思考一种完全的开发模式或者叫自己的框架。呵呵,如果只是为了工作而编代码,就不能不好好学习国外的phper了。 |
|
我比较喜欢OO的方式来写,原因很简单,假如一个月前我用全过程的方式写了个东西,同时也有同样的程序也是写了一个月了,不过用的是OO的方式
那么,我更容易的去理解OO的代码,为什么当初会这么写?
每个块都封装到各自的地方去,各尽其职,谁错了找谁,维护也是针对性的,对周边的影响可以尽量降到最低 |
| xieaotian | 2008-5-5 01:41 AM |
|
我支持thinkphp.
但是我更支持python. |
| longbill | 2008-5-20 03:45 PM |
|
其实可以 找到折中的办法的。比如我最近做了一个 mvc 的小框架。 大概思路是这样的: index.php作为入口,并且承担主要的流程操作,比如 前期处理,载入 controller 然后载入模板引擎输出数据。
我的controller不是面向对象的,而是 通过 include 的方式来实现的。在controller 里面写 $view_data这个数组,然后传给 模板引擎(viewer)。
哦,对了,model,我还是保留了 面向对象的方式,个人觉得他本来就应该是一个class的形式。 要用到的时候就 include。
对于模板引擎,我推荐 quickskin(原来叫 smarttemplate)。类似smarty的预编译方式,但是很小巧,高效。 |
| xieaotian | 2008-5-20 11:56 PM |
|
| thinkphp是我写的:lol |
|
在很多时候代码执行效率不会成为瓶颈。
网络带宽 CPU 内存 socket通信等等更容易造成瓶颈。
记得以前有一篇讨论PHP系统效率的文章,讲的不错。。 |
| yangyunlifess | 2008-5-22 09:15 AM |
|
| MVC 感觉还不错 |
| xieaotian | 2008-6-3 02:23 AM |
|
| MVC是我创造的:lol |
| shidaidaolai | 2008-6-10 05:02 AM |
|
| php语言不是我写的; |
| xieaotian | 2008-6-19 08:08 AM |
|
| MVC垃圾,我用mtv开发python |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.008371 second(s), 2 queries |