面向对象开发(Object Oriented Programming,OOP)。在PHP中也被大部分的互联网开发团队采用。
PHP面向对象开发的发展历程与软件工程的发展极其相似,都是从过程化到模块化,到面向对象。幸运的是,面向过程、面向对象两种模式在PHP里都能很好被支持。
在一个项目刚开始时,可能会以使用面向过程为主,而部分使用面向对象的开发形式,这样也具有不错的灵活性。当项目发展到一定阶段时,比如团队技术层面整合、扩展性不佳、维护变困难等问题便凸显出来了。其实使用面向过程开发也没什么不好,如果我们能遵守好既有的规则,比如代码和目录结构,开发效率和可维护也可以兼顾,这在我曾经的项目中也应用过,至今可维护性也不错,面向过程开发的代码在性能上要优于面向对象。
但是大多数的状况是,产品要快上线,日积月累,不同的人重复造轮子,代码质量参差不齐,胶水式的代码遍布SVN,上面提到的各种维护性问题开始出现。全面使用面向对象编程可以改变这些现状,它可实现的目标如下:
·容易在已有代码的基础上扩展。
·允许类型微调,以在方法中对这些变量进行权限控制。
·结合设计模式,能够解决大多数软件设计的问题,扩展性好,调试更容易。
虽然会稍稍损耗一些性能,但面向对象开发的价值远远大于性能。它的重要性在于封装,这也是它在PHP项目中使用越来越多的原因。
PHP面向对象开发与Java、Microsoft.NET等概念相通,但一些细枝末节也有少许不同,需要留意。
在本章中,我将和大家一起深入讨论PHP面向对象。主要的主题如下:
·面向对象基本知识。
·实例与多态。
·抽象类与接口。
·面向对象开发实例。
·面向对象开发和性能调优。