学php也有半年了,但是发现公司大陆的php程序员的代码几乎有些都还是用面向过程的写法, php和js一样都是解释性的语言, 简单易学, 但并不是解释性语言就不能用oop的写法. 一了解,居然全部都是进公司后才学的php, 在学校或之前并未接触到php方面的程序开发,但是这样不是更加会使用oop吗? 毕竟从c++的出现, oop就已经深人程序员的心了. 如果一个程序员是从php或asp作为起点的,代码没有使用oop也就能理解了.否则,只是重复纯机械性的编码. 没有使用oop是很难有好的设计模式,开发模式, 为什么用.net和java编码是一种享受呢?
下面说一下oop: (copy来的)
------------------------------------------------------------------------------------
面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。
面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。
有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。在基于Web的项目中应用这些概念就成为将来网站成功的关键。
------------------------------------------------------------------------------------
大家请看看后面的两句话, 的确是我的感受, 如果php开发仅使用面向过程, 那么系统维护是非常的麻烦,最常见的就是很多html代码被放到php代码中echo出来, mvc开发讲求的是表现层与控制层和数据层分离,如果表现层的代码直接出现在数据层,不说mvc了,因为一般面向过程都会出现很多的function, function中会出现很多的html, 如果连function也不多, 都在php页面中使用sql stament, 那这种代码根本上就是垃圾代码, 当网页美工与程序员分工的时候, 我会替那个网页美工感到悲哀, 因为他将要面对一系列错综复杂的代码. 请大家不要误会,我并非一杆子打一船人,只是从大体上看.
PHP现有的版本较以前的版本在对面向对象编程的支持方面有了很大的改善,但支持的还不是很完整,不过现阶段PHP对面向对象编程语言提供的支持不但有利于我们设计程序的结构,对于对程序的维护也能提供很大的帮助。 大家可以我的这篇文章php中分离事务层与业务逻辑层可以看到 php支持的oop的开发已经很接近java了.我很希望可以看到php出现好像 java那些设计模式, 开发模式 (可能已经有了,只是我不清楚而已) .
网上的php开源, 目前使用面向过程的已经不多, phpMyadmin是特例.wordpress部分已经使用了oop了,phpMailer等,已经完完全全是oop了. 一种技术,有它的优点,也有它的缺点, 我并不是反对使用面向过程, 只是提倡使用面向对象来开发php程序.
(毕竟是做技术的, 文笔始终有限, 只是这阵子在维护一下php项目, 有感而发)




















