PHP面向对象和PHP面向过程的优缺点评比
面向对象与面向过程的优缺点

⾯向对象与⾯向过程的优缺点⾯向过程 优点:性能⽐⾯向对象⾼,因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源;⽐如单⽚机、嵌⼊式开发、Linux/Unix等⼀般采⽤⾯向过程开发,性能是最重要的因素。
缺点:没有⾯向对象易维护、易复⽤、易扩展 ⾯向对象 优点:易维护、易复⽤、易扩展,由于⾯向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能⽐⾯向过程低 ⾯向对象程序设计的⼀些显著的特性包括: .程序设计的重点在于数据⽽不是过程; .程序被划分为所谓的对象; .数据结构为表现对象的特性⽽设计; .函数作为对某个对象数据的操作,与数据结构紧密的结合在⼀起; .数据被隐藏起来,不能为外部函数访问; .对象之间可以通过函数沟通; .新的数据和函数可以在需要的时候轻⽽易举的添加进来; .在程序设计过程中遵循由下⾄上(bottom-up)的设计⽅法。
⾯向对象程序设计在程序设计模式中是⼀个新的概念,对于不同的⼈可能意味着不同的内容。
我们对⾯向对象程序设计的定义是"⾯向对象程序设计是⼀种⽅法,这种⽅法为数据和函数提供共同的独⽴内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。
这样的程序设计⽅法称为⾯向对象程序设计。
" 从以上定义可以看到,⼀个对象被认为是计算机内存中的⼀个独⽴区间,在这个区间中保存着数据和能够访问数据的⼀组操作。
因为内存区间是相互独⽴的,所以对象可以不经修改就应⽤于多个不同的程序中。
什么是⾯向对象程序设计? ⾯向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与⼀些新的、强⼤的理念相结合,从⽽给你的程序设计⼯作提供了⼀种全新的⽅法。
通常,在⾯向对象的程序设计风格中,你会将⼀个问题分解为⼀些相互关联的⼦集,每个⼦集内部都包含了相关的数据和函数。
同时,你会以某种⽅式将这些⼦集分为不同等级,⽽⼀个对象就是已定义的某个类型的变量。
PHP语言的优点及缺点

PHP语言的优点及缺点PHP语言的优点及缺点PHP(PHP:Hypertext Preprocessor)是一种在电脑上运行的脚本语言,主要用途是在于处理动态网页,也包含了命令行运行接口(command line interface),或者产生图形用户界面(GUI)程序。
PHP 语言有哪些优点和缺点呢?下文将为大家一一讲述。
欢迎阅读!优点1.入门快,有其它语言基础的程序员二周左右的时间就可以入门,一个月左右的时间基本上就可以开发简单的项目了。
2.开发成本低,PHP最经典的组合就是:Linux + Apache + MySQL + PHP。
非常适合开发中小型的web应用,因为上手容易,所以开发的速度比较快。
而且所有的软件都是开源免费的,可以减少投入。
3.PHP是解释性的脚本语言,写完代码以后即可以执行,不像c,java,c++等语言还需要去编译执行,相对来说比较节省时间。
4.相对来说,PHP程序员的薪水的平均工资要比c,c++,java程序员的平均工资要低一些,特别是对于中小型企业来说可以节约一些成本。
5.配置及部署相对简单一些,对比JAVA开发来说,JAVA开发的配置就复杂多了,什么Structs、Spring、Hibernate、Tomcat等等很多地方都需要配置,甚至你在程序中每写一个SQL语句都需要先在Hibernate中配置一下,有时重新部署一个class文件或jar文件还可能需要重启Web服务器(Tomcat或Resin或其它的Web服务器)使新部署的库文件生效。
PHP开发中主要是PHP自身的配置文件及Web 服务器的配置(如Apache或Nginx或Lighttpd等),相对于JAVA来说还是简单一些,而且新修改了文件以后不需要重新启动Web即可以立即生效。
缺点1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的,Via。
2.对面向对象的支持也不太好,相对来说PHP5的面向对象有了不少的提升。
PHP的优缺点分析及应用场景

PHP的优缺点分析及应用场景随着互联网的迅速发展,Web技术成为了信息化建设的重要组成部分。
PHP作为一种被广泛使用的Web开发语言,其在应用场景、优缺点等方面都有着独特的表现。
下面将从简述PHP的优缺点入手,着重分析其应用场景。
一、PHP的优点1.易于学习:PHP语法简单,容易理解和上手,但依然具备强大的功能和扩展性。
即使是初学者,也能快速开发出功能完善的Web应用程序。
2.低门槛和高灵活性:PHP开发出来的Web应用程序灵活性高,可以快速地修改和优化,能够满足不同需求的开发需求。
3.快速开发:PHP是一种针对Web应用的自有开发语言,可以利用轻量级开发、快速迭代等方式快速开发、修改、更新,实施敏捷开发。
4.开源:PHP是开源语言,可以免费使用,安全可靠,由于社区贡献达到几千人以上,PHP语言生态系统已逐步完善,提供的开发工具、框架和第三方库非常庞大,为用户提供了强大支持。
5.稳定性:与其他Web语言相比,PHP对服务器的负荷更小,具有较高的稳定性和安全性。
二、PHP的缺点1.性能:PHP的执行效率相对较低,尤其在处理复杂业务逻辑时。
2.可维护性:PHP语言的代码较容易混乱,大型Web项目的开发和维护过程中比较复杂,会增加开发成本。
3.不适合大型项目开发:PHP语言的设计初衷是开发Web项目,应用于大型项目或系统时效率与扩展性都难以达到最优。
三、PHP的应用场景1.电子商务网站:PHP以轻量级框架、快速集成,成为电子商务网站开发的首选语言,满足短期高效的开发需求。
2.企业内部系统:PHP适合企业内部系统的小型项目开发,如数据集成和协同合作工具。
PHP不仅提供了明确的技术架构,还百分百的可定制化设计满足客户不同的需求。
3.论坛/社交网站:PHP开发的Discuz!、PHPwind等社区系统,广受中国市场欢迎,如同Discuz!着名的互动性和高扩展爆表。
4.教育行业网站:课程列表、学生管理、成绩管理等都是教育行业网站需要的功能,在PHP语言平台上,特别是通过教育行业开源平台的技术知识,可以快速搭建出一套庞大的教育行业网站。
今天聊一下:什么是面向对象?面向过程?举例子以及:面向过程和面向对象的优缺点,让你面试的时。。。

今天聊⼀下:什么是⾯向对象?⾯向过程?举例⼦以及:⾯向过程和⾯向对象的优缺点,让你⾯试的时。
⼀、⾯向过程:⾯向过程就是分析出实现需求所需要的步骤,通过函数⼀步⼀步实现这些步骤,接着依次调⽤即可。
⼆、⾯向对象:将数据与函数绑定到⼀起,进⾏封装,这样能够更快速的开发程序,减少了重复代码的重写过程。
1、⾯向对象是⼀种编程风格,⼀切皆对象,把⼀切东西看成是⼀个个对象,⽐如⼈、⽿机、⿏标、⽔杯等,他们各⾃都有属性,⽐如:⽿机是⽩⾊的,⿏标是⿊⾊的,⽔杯是圆柱形的等等,把这些对象拥有的属性变量和操作这些属性变量的函数打包成⼀个类来表⽰2、⾯向对象有三⼤特性:封装,继承,多态。
---- 封装:将⼀类事物的属性和⾏为抽象成⼀个类,使其属性私有化,⾏为公开化,提⾼了数据的隐秘性的同时,使代码模块化。
这样做使得代码的复⽤性更⾼。
意义:将属性和⽅法放到⼀起做为⼀个整体,然后通过实例化对象来处理;隐藏内部实现细节,只需要和对象及其属性和⽅法交互就可以了;对类的属性和⽅法增加访问权限控制。
---- 继承:在程序中,继承描述的是多个类之间的所属关系,如果⼀个类A⾥⾯的属性和⽅法可以复⽤,则可以通过继承的⽅式,传递到类B ⾥,那么类A就是基类,也叫做⽗类;类B就是派⽣类,也叫做⼦类。
继承进⼀步提⾼了代码的复⽤性。
---- 多态:所谓多态:定义时的类型和运⾏时的类型不⼀样,此时就成为多态,多态的概念是应⽤于Java和C#这⼀类强类型语⾔中。
:举例⼦第⼀种⽅式(⾯向过程)1、养鸭⼦2、鸭⼦长成3‘、杀4、作料5、烹饪6、吃7、卒第⼆种⽅式(⾯向对象):1、找个卖啤酒鸭的⼈2、给钱交易3、吃4、胖6⽄⾯向过程和⾯向对象的优缺点:⾯向过程优点:性能上它是优于⾯向对象的,因为类在调⽤的时候需要实例化,开销过⼤。
缺点:不易维护、复⽤、扩展⽤途:单⽚机、嵌⼊式开发、Linux/Unix等对性能要求较⾼的地⽅⾯向对象优点:易维护、易复⽤、易扩展,由于⾯向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
PHP网站开发PHP面向对象

任务十二 PHP面向对象n PHP是同时支持面向过程与面向对象地编程方式,PHP开发者可以在面向过程与面向对象二者自由选择其一或是混合使用,面向过程开发周期短,发布快,效率较高;面向对象开发周期长,效率较低,但易于维护,改进,扩展与开发API。
在PHP开发,很难说哪一个方式会更优秀,只能在开发过程尽量发挥出两种编程方式各自地优势。
12.2.1 类地创建与实例化n 1.定义类n PHP面向对象定义类地简单语法如下:n[修饰符]class类名{n零到多个属性n零到多个方法n}n每个类地定义都以关键字class开头,后面依次跟着类名,与一对花括号,花括号里面包含着类地属性与方法地定义。
2.类地实例化与访问n在声明一个类之后,类只存在于文件,程序不能直接调用。
需要对该类创建一个对象后,程序才可以使用,创建一个类对象地过程称为类地实例化。
类地实例化需要使用new关键字,关键字后面需要指定实例化地类名,格式为:n$obj=newclassname;n注意:对类进行实例化时,如果需要传递参数,则类名后面需要要圆括号,如果没有参数,加括号或者不加括号效果都相同。
12.2.2 类地访问控制n类地访问控制是指对属性或方法地访问控制,是通过在前面添加关键字public(公有),protected(受保护)或private(私有)来实现地。
n public:被定义为公有地类成员可以在类地外部或内部进行访问。
n protected:被定义为受保护地类成员则可以被其自身以及其子类与父类访问。
n private:被定义为私有地类成员则只能被其定义所在地类访问,即私有成员将不会被继承。
n属性需要定义为公有,受保护,私有之一。
如果用var定义,则被视为公有,可以将var 看做是public关键字地一个别名形式。
12.2.3 静态属性与方法n在类还可以定义静态地属性与方法,所谓"静态"是指所定义地属性与方法与类地实例无关,只与类本身有关。
php的优缺点

php的优缺点1.优点:开源免费性快捷性 [程序开发快,运⾏快,技术本⾝学习快]插件丰富,⽹上的解决⽅案有很多,⽽且还有庞⼤的开源社区可以提供帮助。
跨平台性强效率⾼图像处理⾯向对象[在php4,php5 中,⾯向对象⽅⾯都有了很⼤的改进,php完全可以⽤来开发⼤型商业程序。
]PHP 性能很强 . 配合简单、稳定、容易部署,总的来说 php能帮你低成本完成事情2.缺点,1)函数命名不规范驼峰法和下滑线,传参位置不⼀你知道的2)单线程; PHP本⾝,⼀直以来php就是个单进程的程序;虽然php的pthreads扩展早就有了。
但是它不够稳定,运⾏运⾏着就会莫名其妙的⾃⼰挂掉;php的扩展都是C写的,这也就意味着任何⼀个扩展出现线程竞争资源控制问题都能让整个挂掉3)核⼼异步⽹络不⽀持(当然在linux只有同步⾮阻塞⽹络模型)。
却少了这个使得很难开发⼀个能够承受⼤并发的⽹络应⽤。
传统的⽹络模型和io都阻塞的。
这样基本的编程的做法就是⼀个进程(或者线程)响应⼀个⽤户链接请求。
因此⽆法完成像实时⽹游那样需要成千上万⽹络连接的任务。
尽管php也有Libevent、eio扩展对此算是某种程度上⾯的弥补,但是感觉都不是那么完善4)只⽀持web开发,不⽅便做 .exe⽂件,不⽅便做桌⾯应⽤程序. 不⽅便做⼿机程序.5)不适合做爬⾍、⾃动运⾏脚本.科学运算项⽬,这语⾔基本构架就不适合,虽然有很多⽅法实现。
6)后期维护困难。
后期提速空间局限性较⼤。
引⽤鸟哥[]的话:说PHP不⽀持多线程(90% of这些⼈不知道多线程模型和IO复⽤模型的不相伯仲), 烂. 说PHP不⽀持异步(90% of这些⼈, 根本不知道异步代表什么), 烂. 说PHP是屌丝语⾔(99% of这些⼈是想找寻智商优越感), 烂. 每每我看到这种的论调, 我真的很⽆奈, 因为你根本没办法让⼀个装傻的⼈变聪明.。
面向对象和面向过程的区别及优劣对比详解

⾯向对象和⾯向过程的区别及优劣对⽐详解以前上⾯向对象这门课的时候,我是没有特别注意这些。
但现在发现⾯向对象和⾯向过程的设计思想是很重要的1.⾯向对象和⾯向过程有什么区别?⾯向对象程序设计和⾯向过程程序设计的区别实际就是解决问题的⽅式不同。
先解释⾯向过程,你得先分析出解决问题的步骤,然后⽤函数把这些步骤⼀步⼀步地实现,解决的时候就是⼀个⼀个函数地调⽤。
⾯向对象,⾸先你需要知道对象的概念。
对象,就是类中某个具体的实例,⽐如⼈类张三,李四就是类的某个对象,他们有⾃⼰独特的个性。
⾯向对象,看名字它是注重对象的。
当解决⼀个问题的时候,⾯向对象会把事物抽象成对象的概念,就是说这个问题⾥⾯有哪些对象,然后给对象赋⼀些属性和⽅法,然后让每个对象去执⾏⾃⼰的⽅法,问题得到解决。
不懂别急,举个例⼦你就明⽩了,不懂都难^_^⾯临的问题:洗⾐机⾥⾯放有脏⾐服,怎么洗⼲净?⾯向过程:1 执⾏加洗⾐粉⽅法;2.执⾏放洗涤剂⽅法3执⾏加⽔⽅法;5 执⾏放⾐服,洗⾐服⽅法;6执⾏清洗⽅法;7. 执⾏烘⼲⽅法;----------解决问题拆成⼀个个⽅法,是没有对象去调⽤的。
通过⼀个个⽅法的执⾏解决问题。
⾯向对象:我先搞个洗⾐机对象和⼈对象洗⾐机:加⼊⼀些属性和⽅法洗⾐服⽅法清洗⽅法烘⼲⽅法⼈:加洗⾐粉⽅法加⽔⽅法然后⼈.加洗⾐粉⼈.加⽔洗⾐机.洗⾐服洗⾐机.清洗洗⾐机.烘⼲----------同样解决问题先抽象出对象,然后⽤对象执⾏⽅法的⽅式解决问题。
关于两者的优缺点,根据你的需要来判断。
并不能⼀概⽽论⽹上很多关于⼆者优缺点,我认为最形象的解释是蛋炒饭和盖浇饭的⽐较蛋炒饭:盖浇饭:蛋炒饭的好处就是⼊味均匀,吃起来⾹。
如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯⼀的办法就是全部倒掉,重新做⼀份青菜炒饭了。
盖浇饭就没这么多⿇烦,你只需要把上⾯的盖菜拨掉,更换⼀份盖菜就可以了。
盖浇饭的缺点是⼊味不均,可能没有蛋炒饭那么⾹。
到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,⾮要⽐个上下⾼低的话,就必须设定⼀个场景,否则只能说是各有所长。
面向对象编程与面向过程编程的比较

面向对象编程与面向过程编程的比较面向对象编程(Object-Oriented Programming,OOP)和面向过程编程(Procedural Programming)是两种主流的编程范式。
虽然它们在很多方面都有相似之处,但也存在一些明显的差异。
本文将对面向对象编程和面向过程编程进行比较,分析它们各自的优势和劣势。
面向对象编程将数据和操作数据的函数封装在一起,形成一个对象。
对象是类的实例,类是一种描述相似对象特征和行为的模板。
面向过程编程则是将计算机程序视为一系列的步骤,即一组函数的集合,这些函数按照特定的顺序执行。
面向对象编程的特点是封装、继承和多态。
封装将数据和操作数据的函数封装在一起,隐藏内部实现细节,提供对外的接口。
继承允许创建新类,从一个或多个现有的类继承属性和方法,使代码更加灵活和可重用。
多态允许不同对象对同一消息作出不同的响应,提高代码的灵活性和扩展性。
面向过程编程注重对问题进行细分和精确的算法设计。
它将任务分解为一系列的步骤,按照特定的顺序执行。
面向过程编程更加注重函数和流程的设计,对数据的操作相对较少。
面向对象编程相对于面向过程编程具有以下优势:1.高内聚性和低耦合性:面向对象编程将数据和操作数据的函数封装在一起,每个对象只需要关注自己的数据和操作,提高了代码的内聚性。
同时,对象之间通过接口进行通信,降低了对象之间的依赖性,减少了代码的耦合性。
2.可重用性和可维护性:面向对象编程通过继承和多态实现代码的重用。
可以通过创建新类来扩展已有的类,并重用已有的代码和实现。
同时,面向对象编程的封装特性使得代码更易维护,当需要修改某个功能时,只需要修改相应的类即可,不需要修改整个系统。
3.扩展性和灵活性:面向对象编程能够很好地支持系统的扩展和变化。
通过继承和多态的特性,可以在不修改现有代码的情况下添加新的功能和行为。
这使得系统更加灵活和可扩展。
4.多人协作:面向对象编程使得多人协作更加容易。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P H P面向对象和P H P面向过程的优缺点评比 Revised by Petrel at 2021PHP面向对象和PHP面向过程的优缺点评比面向对象与面向过程在许多编程语言中只能使用二者之一来进行编程,但是PHP语言与其他编程语言有不同之处,那就是我们可以自由的选择或者将PHP面向对象和PHP面向过程二者混用。
目前绝大多数PHP程序员使用面向过程的方式,因为解析Web页面本身就非常“过程化”(从一个标签到另一个标签)。
在HTML中嵌入过程处理代码是很直接自然的作法,所以PHP程序员通常使用这种方式。
如果你是刚接触PHP,用PHP面向过程的风格来书写代码很可能是你唯一的选择。
但是如果你经常上PHP论坛和新闻组的话,你应该会看到有关“对象”的文章。
你也可能看到过如何书写面向对象的PHP代码的教程。
或者你也可能下载过一些现成的类库,并尝试着去实例化其中的对象和使用类方法--尽管你可能没有真正理解这些类为什么可以工作,或者为什么需要使用PHP面向对象的方法来实现功能。
应该使用“面向对象”的风格还是“面向过程”的风格?双方各有支持者。
像“对象是低效的”或“对象非常棒”这样的议论也时有耳闻。
本文不尝试轻易判定两种方法的哪种具有绝对的优势,而是要找出每种方法的优缺点。
以下是PHP面向过程风格的代码示例:以下是PHP面向对象风格的代码示例:myPrint(); >如果你想了解一些“面向对象”的基本知识,请使用Google搜索,网络上有非常多精彩的文章。
谁像这样写代码?为了理解为什么这个论题成为论坛上口水战的导火线,我们看一些每个阵营的比较极端的例子。
我们看看“过程狂热”和“对象狂热”。
看看他们的观点听起来是不是有点熟悉。
过程狂热过程狂热曾在上课时被计算机教师批评,因为这种方法没有使用更加抽象的实现方式。
而支持PHP面向过程者的观点“它可以工作!”并不能提高其编程水平和档次。
毕业后他们可能找到一个工作,写驱动程序,文件系统或其它的偏向底层的编程,他们的注意力集中于速度和代码的精炼。
“过程狂热”极端的例子是抵制对象,抵制抽象化。
他们总在想着如何让程序运行起来更快,而不在乎别人是否能读懂他们的代码。
他们常常把编程当成竞赛而不是团队活动。
除了PHP外,他们最喜爱的编程语言是C和汇编。
在PHP世界中他们可能会开发PECL模块,贡献出高效率的代码。
对象狂热对象狂热者热衷于在任何时候使用PHP面向对象的风格来书写代码。
他们没有真正考虑过用这种方式是否会影响程序的执行效率。
有时候让人觉得他们更享受抽象的设计概念而不是现实的代码。
他们通常很可能是项目管理者或文档书写者。
对象狂热者指出,如果没有抽象的设计方法我们仍然在使用0和1进行编程。
他们喜欢用伪码来描述问题。
极端的例子是对象狂热者即使知道有时候会牺牲效率仍然使用对象。
除了PHP,他们最喜欢的语言是Java和Smalltalk。
在PHP世界中,他们可能会开发PEAR模块,贡献文档化非常好,易于维护的代码。
不要偏激和讽刺你知道为什么论坛上总是充斥着各种偏见吗?你的经验阅历,你对新事物的态度都可能是原因。
作为程序员,我们需要时常注意这些偏见并以开放的心态去学习新事物。
你的编码倾向?考虑一下当你书写PHP代码时有什么偏好或倾向。
通常这些偏好是比较隐晦的。
有时候你可能在每个项目中有着同样的偏好。
我个人倾向于“优雅”,但我不想在此定义如何才是“优雅”的代码,那应当出现在另一篇文章里。
但是,理论化的偏好不一定适合于实际项目—相反地,他们常常是一种偏见。
理论化的倾向?用最少行数的代码提供一个完整的解决方案?在问题层次上考虑问题这听起来似乎很不错。
但“代码行数最少”如何来衡量呢要把代码注释算在内吗我们是否要把每一行都串起来而只用分号来区分呢大括号呢很明显这种想法是错误的。
再解释一下什么是“问题层次”。
这是否意味着在我们的方案中的每个概念都需要建立一个类或者需要在每个独立的文件里保持问题的每个部分,并建立一个复杂的文件树来与现实中的问题相对应就是这样的想法--为每个想法准备一个文件或类!很明显这些概括极端化后变得可笑。
但现实中存在更微妙的证明。
是否常常会有程序员在团队合作时插入一行复杂的,强大的但没有注释的代码这对于接手维护这些代码的人来说无疑是非常令人沮丧的事。
相反地,是否你的官僚的自以为是的上一级程序员常常“横冲直撞”般地,建立接口和类而那些接口和类不仅仅限制了负责实现的程序员,也限制了效率和灵活性,导致客户要求扩展程序时手足无措。
这些都是以上各种倾向的微妙的证明。
实际倾向一个项目开始的时候,首先要寻求实际的编码目的和方向。
这个项目的实现目标是什么?下面是可能是答案。
?开发快,发布快?尽可能快地运行?易于维护,改进和扩展?发布一个API第一、二个方向倾向于使用过程化的风格,而最后两个倾向于使用PHP面向对象的风格。
什么时候某种方式更有效?现在让我们试着评价每种方式在现实中的优势。
PHP面向过程案例有关PHP的面向过程化编程优势的一个基础性的论据是:PHP是一个解释性的语言--这意味着,不像其它的语言一样,它不会被编译成一个可执行的包,而是被解释并马上执行。
它是一种脚本语言并存储于文本文件中(例外的,如果使用了Zend编译工具)。
另一个反对在PHP4及更低版本中使用面向对象方式进行编码的理由是:在PHP的早期版本中对象的功能并没有经过良好设计。
就像Rasmus曾说过的:“那是事后才想起要增加的功能”。
这意味着在PHP4及更早的版本中,对象的效率是个问题。
但PHP5出来后,这种情形会有改观。
以下两个最流行的PHP程序--OsCommerce和PhpMyAdmin.主要使用面向过程的编码方式。
它们构建起来很快,运行起来也很快。
两者都很自然地采用嵌入HTML 的方法。
OsCommerceOsCommerce实际上使用了很多对象,但绝大部分功能是通过“过程”来实现的。
我曾经hack过OsCommerce,为其增添一些对于客户非常实用的自定义功能。
这个过程是挺麻烦的,因为OsCommerce中的很多过程代码,没有使用模板化的系统,并且设计成多语言版,所以需要花一定的时间才能上手。
但是它可以工作,事实上它已经很好地运行在数目众多的电子商务站点上了。
OsCommerce同时提供了一个论坛和一个开发框架用来开发模块和插件。
因此,现在已经有了很多其它开发者提供的实用的功能模块。
PhpMyAdminPhpMyAdmin直接使用的类只有一个:MimerSQLValidator类,依赖于PEAR包中的Mail_Mime,Net_DIME和SOAP。
这可能是考虑到开发的方便:利用现成的可以实现目的的代码。
除此之外,一切都是面向过程的,HTML和PHP代码也是混杂在一起。
PhpMyAdmin是我几乎每天都要用到的一个工具,用来对少量的数据表进行不太复杂的处理。
有时我甚至鼓励我的客户将它当作后端的管理工具来使用(当然我会限制他们的权限)。
PhpMyAdmin的表现非常棒,也很快。
有时我想在一些项目中扩展PhpMyAdmin作为后端的管理工具,利用它的一些新功能如数据查询语句书签可以很方便地展示给我的客户和编辑。
随着每个新版本的推出,PhpMyAdmin越来越实用,功能越来越强大。
软件开发网PHP面向过程小结以上两个使用面向过程风格的程序都有非常好的文档和代码注释。
OsCommerce 提供的开发框架可以增加维护性和扩展性。
但是两者都没有提供API,不能扩展程序到另外的体系中。
如果你想把OsCommerce整合到一个帐单程序中,需要花费大量的时间和精力,就像扩展PhpMyAdmin成一个供客户使用的后端管理工具。
不过从它们设计的目的来看,确实在各自的领域中都表现地很出色。
PHP面向对象案例支持面向对象风格者的观点都集中于扩展性和封装。
仅仅用面向对象的方式来写代码不会为你的代码产生文档,但它可以鼓励你为之添加文档。
并且,为了易于扩展,你可能会写一个API。
PHP5许诺让面向对象编程更加愉快。
我开玩笑地将它称为PHP中的”Java2”版本,因为它整合了Java中的许多特性,像接口,面向对象模型,try-catch语句等。
但即使在对面向对象支持不力的PHP4中,仍然出现了许多出色的面向对象应用程序。
SmartySmarty用来构建带有复杂表单并基于模板的站点。
最近,我写了一个可以完全换“皮肤”的在线考试系统—可以不用改变任何底层的代码和功能就可以将整个站点的外观界面和风格完全改变。
为了让设计师可以易于设计新的界面,我设计了一个自定义的标签库作为Smarty标签库的扩展。
可以像这样简单地插入:[navigationhorizontalseparatedby"|"]在一个页面的顶端有分隔开的导航。
因为Smarty已经提供了非常强大的机制来表现变量中包含的数据,这是一个映射较复杂的Smarty标签到skin标签的简单过程。
由于Smarty封装成一个类,并且它的方法都有很详尽的文档,使得使用模板的过程变得令人难以置信地易于扩展。
同时,通过强制性地只能显式地传递你要使用的变量给Smarty模板的方法,Smarty也为PHP的环境变量提供了一个保护层。
这种方法有助于在Smarty模板设计师和程序员间建立安全、可靠的工作关系。
FPDFFPDF是一个非常优秀的工具。
如果你被改来改去的pdflib的API所困惑,或者不愿为商业化的解决方案而交钱;或者由于共享主机的限制,无法使用扩展模块—请考虑使用这个免费的,纯PHP构建的PDF生成工具。
这个类有很好的文档,包括许多很好的例子来阐述如何在PDF中布局文本和图片。
在上面提到的同一个在线学习站点我使用FPDF来动态生成PDF文件,使用truetype字体和300dpi精度的图像。
在PHP中实例化FPDF类并进行PDF操作并不会花费太多额外的时间,因为PDF本身就可能需要花费几分钟来下载。
事实上,动态生成并传送一个PDF所花的时间不比当使用一个慢速的网络连接来传送静态PDF文件所花的时间多。
这都是相对而言的。
并且,由于FPDF是基于类的,他可以被扩展。
事实上,有些类方法虽然存在但还没有完全实现,仅作为一个框架,这可以为你在子类中建立你自己的内容(如自定义的头尾元素)提供向导。
PHP面向对象小结Smarty和FPDF都提供了带有良好文档的API来扩展主类。
这说明了在类的内部组织方法和数据的必要性--有时同样的功能可以用函数和全局变量来完成,但这样不易于扩展。
并且,使用对象对跟踪和保持PDF或HTML文档的风格非常有帮助,你可以将同样的数据用不同的格式来发布。
Smarty和FPDF都是使用对象来建立灵活实用的类库的极好的例子。