喜悦国际村 » 喜悦原创 » PHP之MVC模式

页: [1]
gaoshikao2008-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]]

sanshi08152008-2-18 03:47 AM
运行效率是相对的,如果绝对的来比,oo的确不如过程化!

zshtom2008-2-18 04:09 AM
要看 你怎么 舍取了 少了一点运行效率 会带来维护和开发的 效率。。

yyfzx2008-2-18 06:12 AM
面向对象的效率 不然 面向过程 这是铁的事实。
但是面向对象的开发效率 远远超出面向过程的效率。
尤其是团队合作的时候,极为提现。

sanders_yao2008-2-18 07:53 AM
开发效率要看你代码的重用次数 如果一个类型被重用到很多过程中 那么还值得
如果一个类型就只有一个过程会被实例化 我感觉oo的意义就不大了

seakingx2008-2-19 02:30 AM
我谈谈我的看法,我觉得不论什么工具,方法,只要能最有效地实现工作要求,就是可用的,
       我在网站程序部分所做的工作,基本上都是些小网站,就是小企业入门级的网站, 自己弄了一个内容管理的小系统(类似于cms), 这个系统,我全部都是用函数来完成的,开发的时间比较早, 所以就没用用到模版的概念, 只是把各种代码 都过程化,函数化。 每建立一个新的后台的时候,就是重新在新站点生成相关的表,可能改改数据库的结构, 然后复制后台文件到新站就可以了。

        对于前台, 觉得用模版还是省事些,毕竟我不懂美工, 而且如果没有模版的标准, 美工先做好页面,程序员再加代码, 这个工作会很麻烦,好像很多美工都没有程序逻辑概念。 对于入门级的网站, 前台程序无非就是列表,详细信息,查询, 这些和数据库读取有关的东西我都定义成一个类, 网站每一个内容的显示, 定义内容相关的读取,用的代码都基本一样的, 调用对应的模版(HTML)文件就可以了。

        这是一个php初级程序员( 看村里的牛人写的标准,我还没达到初级,厚着脸称自己为初级)对MVC的理解,欢迎大家批评指正。

[[i] 本帖最后由 seakingx 于 2008-2-19 10:31 AM 编辑 [/i]]

gaoshikao2008-2-19 03:14 AM
我学习php有一年半的时间了  虽然采用过程化的程序能很快完成工作 但是在心底我仍旧希望能使代码尽善尽美 所以一直在思考一种完全的开发模式或者叫自己的框架。呵呵,如果只是为了工作而编代码,就不能不好好学习国外的phper了。

k6bar2008-5-4 07:06 AM
我比较喜欢OO的方式来写,原因很简单,假如一个月前我用全过程的方式写了个东西,同时也有同样的程序也是写了一个月了,不过用的是OO的方式
那么,我更容易的去理解OO的代码,为什么当初会这么写?
每个块都封装到各自的地方去,各尽其职,谁错了找谁,维护也是针对性的,对周边的影响可以尽量降到最低

xieaotian2008-5-5 01:41 AM
我支持thinkphp.
但是我更支持python.

longbill2008-5-20 03:45 PM
其实可以 找到折中的办法的。比如我最近做了一个 mvc 的小框架。  大概思路是这样的: index.php作为入口,并且承担主要的流程操作,比如 前期处理,载入 controller 然后载入模板引擎输出数据。
我的controller不是面向对象的,而是 通过 include 的方式来实现的。在controller 里面写 $view_data这个数组,然后传给 模板引擎(viewer)。
哦,对了,model,我还是保留了 面向对象的方式,个人觉得他本来就应该是一个class的形式。 要用到的时候就 include。


对于模板引擎,我推荐 quickskin(原来叫 smarttemplate)。类似smarty的预编译方式,但是很小巧,高效。

xieaotian2008-5-20 11:56 PM
thinkphp是我写的:lol

yarco2008-5-22 04:30 AM
开发效率 vs 执行效率

玉面修罗2008-5-22 08:35 AM
在很多时候代码执行效率不会成为瓶颈。
网络带宽 CPU 内存 socket通信等等更容易造成瓶颈。
记得以前有一篇讨论PHP系统效率的文章,讲的不错。。

yangyunlifess2008-5-22 09:15 AM
MVC 感觉还不错

xieaotian2008-6-3 02:23 AM
MVC是我创造的:lol

shidaidaolai2008-6-10 05:02 AM
php语言不是我写的;

xieaotian2008-6-19 08:08 AM
MVC垃圾,我用mtv开发python


查看完整版本: PHP之MVC模式


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.008371 second(s), 2 queries