免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 16095 | 回复: 40
打印 上一主题 下一主题

PHP的面向对象(OOP)在实际开发中的使用讨论 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-11 10:40 |只看该作者 |倒序浏览
获奖名单已公布,详情请看http://bbs.chinaunix.net/thread-3613443-1-1.html

不可否认,面向对象编程在程序语言中早已成为一种时尚,一种高端的代言,PHP早在PHP5就开始支持面向对象,即便不能想JAVA,Ruby那样完全的面向对象,但是基本的特征语法都已经实现,PHP6更是增加了很多面向对象的语法,如非常有用的namespace。但是,事实上目前国内的大多数PHPer在实际开发使用中,很少能够使用到PHP的面向对象特征,往往由于业务流的限制,使得面向过程的编程模式显得更为简洁、迅速,某些场景下,甚至效率问题都成为不便使用面向对象的绊脚石。

活动主要组织者:xinglu1983 PHP版版主

讨论话题:
面向对象到底是否适合PHP,是否应该在实际业务中使用OOP,如何使用?   

讨论方式:
把自己在实际应用中遇到过的问题以代码片段或者伪代码的形式发表,一起来讨论优缺点。 如:某种情景中面向对象很适合解决某些特定的问题,或者不适合,都可以拿出来进行讨论。

讨论时间:2011-10-11——2011-10--29

讨论有奖:社区为参与讨论的网友准备了《php基础教程》《深入php:面向对象、模式与实践》两种书 共十本。本次活动奖励由图灵出版社友情赞助!
  

论坛徽章:
0
2 [报告]
发表于 2011-10-11 10:51 |只看该作者
这个要顶,沙发啊 呵呵呵

论坛徽章:
0
3 [报告]
发表于 2011-10-11 10:54 |只看该作者
回复 2# yanyangtian4502


    汪兄也来分享下经验嘛

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2011-10-11 10:56 |只看该作者
回复 1# 无风之谷
问几个问题:
1.用php框架实现的代码,跟非框架的代码有什么优劣? 是否框架的代码比较好?
2.如果将非框架的php代码移植到某一个框架下(大约有300个php文件200个htm页面),移植大约需要多少工作量? 是否有必要移植?

论坛徽章:
0
5 [报告]
发表于 2011-10-11 10:57 |只看该作者
使用 OOP开发的优点太多了
不单单是php,所有的地方都是
使用OOP可以把结构的层次分开,能够更灵活的去改变内容
太多概念性的东西和专业性术语我也不懂,不过一般来说,如果一个系统可以写一个接口,通过OOP的思想去选择执行哪个module里面的接口,这样可以达到无限扩展性
开发效率提高了,扩展性提高了,易用性也提高了,兼容性也好了,而且增删模块也很方便

以上个人对OOP的简单理解,比较初级,其他补充

论坛徽章:
0
6 [报告]
发表于 2011-10-11 10:58 |只看该作者
回复 4# 瀚海书香


    欢迎提问。

论坛徽章:
0
7 [报告]
发表于 2011-10-11 11:36 |只看该作者
回复 1# 无风之谷


    高级的php项目必然是需要的

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
8 [报告]
发表于 2011-10-11 11:53 |只看该作者
回复 4# 瀚海书香

    1、框架的优势很多,比如:提高开发效率,规范目录结构,规范部分代码风格,等等,这个百度下,应该能得到更详细的文字说明。
            但是开源框架因为较为通用,执行效率都不会非常高,当然也有类外,鸟哥那个以php扩展来实现的框架yaf,效率可以和原生php媲美。
            总之,用不用框架各有利弊。
    2、这意思好像就是用框架重写代码了,这个工作量不好估计,得看具体的业务量来决定。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
9 [报告]
发表于 2011-10-11 12:53 |只看该作者
本帖最后由 renxiao2003 于 2011-10-15 23:50 编辑

关于这个话题,估计是很多PHPER的心结。使用传统的PHP的开发方法(在HTML中加入PHP代码的方式),开发确实很快,而且PHP的语法不是很难,再加上资料丰富,如果单独个人开发或者几个人开发一个网站,这种方式是应该绰绰有余的哦。这也是中国的PHPER们经常使用的方法。我最初学习PHP的时候也是这样开始的,确实简单易学。但那时候没有使用PHP开发真正的项目,仅仅是学习语法操作,所以很是简单。
我真正开始开发PHP的项目是在2008年的时候,当然作为是8年开发经验的人员来说,各种开发语言对我来说应该不是有很大的问题,当时我也是这样想的。但当我进入到项目中的时候,我就发现我那个想法有些失误,因为那个项目把PHP的面向对象的特性用到了淋漓尽致(很抱歉的是,我不可能分享我们的代码——目前我也没有这个代码),这是一个日本的项目,采用了MVC的分离机制(MVC借鉴了Struts),使用类,集成,封装,使用了Smarty,借鉴了Hibernate的OR-MAP思想。整个项目的框架是小日本写的(没有开源的,公司内部使用),那时候我才知道PHP能写出这么完美优雅的程序。
这个框架对于代码的维护性,易读性,已经开发人员的分工都起到了很好的作用,我作为PHPER,我不用关心画面的布局和美观问题(有美工把关),很多好的思想框架我们可以使用基类。等等,如果你会PHP的基本语法,使用这个框架来开发程序,真的是太容易,而且开发的程序在整个项目中都通俗易懂,容易维护。
至于PHP6中新怎加的namespace(.NET的叫法),确实是个好的思路,借鉴了微软.net框架思想。但这个功能我还没有怎么使用过,我感觉不是很必须,卫衣的好处可以帮我们更好的处理类(相当于java的包),但这个namespace并不需要和文件系统目录对应上(和.net相同)。好在php的类名没有强制要求和文件名同(我记得是这样的)。
如何使用PHP的OOP,我的建议是使用现场的框架,国产的比较成熟的框架有ThinkPhp,国际的有ZendFramework(这可是官方的哦),表现层比较成熟的是Smarty,数据库有AdoDB等,包括PHP的新版本中的PDO技术等,都是不错的技术。如果你对Struts的实现足够理解,你也可以自己创建一个自己的想框架。只有真正的应用了PHP的OOP特性,才能让你的PHP代码易读,易维护,易移植。
再次抱歉:不能分享我的代码,只能描述。
实现方式就是采用同意的Controller(Struts的ActionServlet),Form等进行MVC分离,程序员就编写PHP代码和页面的数据显示就足够了。请求转发等都放心交给框架就行。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
10 [报告]
发表于 2011-10-11 13:31 |只看该作者
回复 8# xinglu1983
多谢。

php的框架有那么多种,看哪个框架比较有利于实现一个自己开发的比较高效的框架。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP