
第一、OOP成功的系统太多了,尤其在是非PHP领域,简直是多不胜数!
第二、关于OOP的优点,不用我说相信你从书本、百度、或者实践中都会体会到。
至于为什么现在大多数PHP系统都是面向过程的,我给你几个理由:
1、历史原因及客户需求。PHP完整的OOP是PHP5才出现的,而目前大多数环境都是PHP4的。也就是说一个开源软件要成功,必要要考虑到的是客户!。不要跟我说PHP4的OOP,那是假的,实际上也是由数组模拟而成的。
2、现有开源系统都起源于PHP4或者更早。现有成功的系统在刚起步的时候,PHP的面向对象根本是不成熟的,而且当时的需求采用面对过程已经完全足够。在今后的发展,如果从根本上重构系统,带来的不仅仅是原有用户升级的困难,而且相应成本很高。
3、性能,不可否认面向对象是有一定的性能损耗的,但这种损耗是非常微小的,尤其在大规模应用中,几乎可以忽视。现在你所谓的“成功系统”只不过是开源领域中应用比较广的,他更多的是中小应用。对于这些中小应用来说,这种性能损耗是有影响的。但对于正在成功的大规模应用,这种损耗相对开发维护的方便性几乎是不存在的。
最后,对于这个问题,我觉得根本没有讨论的必要!
学习好OOP对于PHPER来说,是最基本的,也是必要的。


最新回复
2008年元旦之后开始系统学习OOP,一下子接触了很多的OOP知识,有PHP有与PHP无关的。然后开始认识到设计模式,认识到UML。开始转换成MVC分层设计,开始使用框架,开始接触JQuery,甚至开始用OOP自己写应用程序开发核心。
让我对程序设计开始有很大的改观。OOP的设计思想一下子让我彻底的清理了原来认识上的不足。
这个是我在学习OOP之后不久写在问答求助区的关于OOP和OPP的认识。
见:http://bbs.phpchina.com/viewthread.php?tid=53321&page=2#pid387820
QUOTE:
这篇文章一经发表,便引起了许多热心读者关注.
该文章试图用一个称述语句做为标题,来诠释某种思想.
其实我们应当把该文标题看成是一个问句,反映出作者对于"最优PHP架构"的迷茫和与大家分享讨论的心情.
文章通过对作者的MYPIC项目进行剖析,由浅入深的分析出目前PHP初级应用的现状,
引出了"目前流行,使用面广的PHP程序都是面向过程的"这一中心思想.
并通过列举DZ以及其它一些成功系统的实例,来证明这一观点.
该文的写作手法,主要是通过事实分析,适时抛出引题,没有直接定下结论,给读者留下了很大的想象空间.
初看该文时,很容易让人感觉到作者是站在"支持面向过程"这一立场,
但细细品来,却能发现很多更为深刻的东西.此处不作过多评述,还是留给读者自己体会.
该文通过表达作者自己的疑惑,一定程度上反应出当前的社会问题.
相比该本文表达的思想,其留给世人的思考或许更有意义.
[ 本帖最后由 wbsifan 于 2008-11-19 16:03 编辑 ]
其实并非如此。
根据不同的应用类型,根据你的客户需求,尽可能的选择最适合的解决方案才是正确的做法,有得就有失,我们要做的就是权衡这个得与失的大小。
OOP是很好,但是不能一味追捧,不能什么就用它来,毕竟它不是万能的,也有不适用的地方。
做事情不能眼睛只看一面,应该让自己的思路更开拓一些。
汗,好像还是站在面向过程那边的。不知道这老兄会不会给我发奖金。
QUOTE:
很遗憾, 我就是那么老兄, 其实我是站在OOP一方的.人不是万能的,不可能一开始把什么都想好。而是让程序拥有生命力。用户体验差。那就改。反正良好的OOP 代码改点小功能什么的是非常轻松地。
为什么叫开源。。。。如果DZ的代码是用oop写的。我们自己改或者扩充功能,不知道比现在轻松多少。
php的oop目前不成熟是因为php的oop起步较慢,在php5才真正起到了作用,而未来在php6还会增加更多的oop特效,比如目前的6.x测试版中就已经有了namespace支持.
至于说dz,wp代码的问题,因为他们都从旧版本就开始写了,结构庞大,要一下子用从写oop从写的话工作量绝对不是一般的,成熟的产品作者们就算有这个能力也未必愿意冒这个风险.
相信随着php的oop功能的逐渐完善,更多php项目会使用oop来写.
1、存在,就有道理
2、简单,也许更好
没必要争论,虽然都是善意的