首页 
资讯中心 业内活动 行业人物 网站运营 站长商城 精品学院 站外休闲 关注汶川
特别专题 | 行业新闻 | 人物访谈 | 专栏作家 | 求职招聘 | 行业公司 | 网站名录 | 好站推荐 | 站长工具 | 站长大会
·包头首届站长大会 ·我区网站备案通道
·企业网站评比大赛 ·本站开展IDC托管
·内蒙古精品网址站 ·10秒即可成为写手
   当前位置:内蒙古IT实验室 内蒙古互联网实验室 内蒙古站长 >> 精品学院 >> 网络编程 >> PHP编程 >> 浏览文章
PHP程序不实用大型系统的九大原因
作者:sixth 来源:ccidnet 收藏: 投稿

    PHP确实十分容易编写。但是PHP也有一些十分严重的缺陷。下面我会给出我的理由,为什么PHP不适合于比小型业余网站更大的网站。

    1、对递归的不良支持

    递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug 1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。

    2、许多PHP模块都不是线程安全的

    在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache 2 的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache 2依然不流行的原因之一。

    3、PHP 由于商业原因而不健全

    通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的Zend Accelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。

    但是有另一个可选择的: APC. (Zend后来推出Zend Optimizer,免费的加速器——译者)

    4、没有命名空间

    设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸的是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltprocessor_transform_to_XML让代码难于书写和理解。

    5、不标准的日期格式字符

    很多程序员对 日期格式字符 都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty (一个很流行的PHP模版引擎)的 strftime 函数和 date_format 函数,却使用了C/UNIX的格式化字符。

    6、混乱的许可证

    你也许认为PHP是免费的,所有的在手册中提到的PHP模块也是免费的。错了!例如,如果你想在PHP中生成PDF文件,你会在手册中发现两个模块:PDF 和 ClibPDF。但是这两个都是有商业许可证的。所以,你所使用的每个模块,你都要确保你同意他的许可证。

    7、不一致的函数命名规则

    有些函数名称是有多个单词组成的。一般有三种单词组合的习惯:

    直接拼接:getnumberoffiles

    用下划线分开:get_number_of_files

    骆驼法则:getNumberOfFiles

    大部分语言选择其中一中。但是PHP都用到了。

    例如,你想要把一些特殊字符转换成HTML实体,你会使用函数htmlentities (直接拼接单词)。如果你要使用相反的功能,你要用到它的小弟html_entity_decode。由于某些特殊的原因,这个函数名是由下划线分隔单词。怎么能这样呢?你知道有一个函数叫strpad。或者他是str_pad?每次你都要查看一下到底这个符号是什么或者直接等他出现一个错误。函数是不分大小写的,所以对于PHP来说rawurldecode 和RawUrlDecode之间没有什么区别。这也很糟糕,因为两个都使用到了同时他们看上去还不一样,混淆了阅读者。

    8、魔法引用的地狱

    魔法引用(Magic quote)可以保护PHP脚本免受SQL注入攻击。这很好。但是出于某些原因,你可以在php.ini中关闭这个配置。所以你如果要写出一个有弹性的脚本,你总要检查魔法引用是开启还是关闭。这样一个“特性”应该让编程更简单,而事实上变得更复杂了。

    9、缺少标准框架

    一个成长中的网站没有一个整体框架,最终会变成维护的噩梦。一个框架可以让很多工作变得简单。现在最流行的框架模型时MVC-模型,在其中表现层、业务逻辑和数据库访问都分离开了。

    很多PHP网站不使用MVC-模型。他们甚至没有一个框架。甚至现在有一些PHP框架同时你都可以自己写一个,关于PHP的文章和手册没有提高框架的一个字。同时JSP-开发人员使用像Struts的框架、ASP开发人员使用.net,看起来好像这些概念都广泛被PHP开发人员所了解。这就说明了PHP实际上到底是多专业。

    总结

    什么问题?

    对于非常小的项目,它可以是一个十分符合人意的编程语言。但是对于较大的和更为复杂的项目,PHP就显出他的薄弱了。当你不断地摸索之后,你会发现我提到的某些问题的解决方案。所以,当解决方案已知之后,为什么不能修正他呢?另外,为什么这些修补不在手册中提到呢? 一个开源的语言十分流行是一件好事。但不幸得是,它不是一个伟大的语言。我希望所有的问题能有一天得到解决(也许在PHP6),然后,我们就将拥有一个开源语言,他既开源,又好用。

    到现在,当你要启动一个多于5个脚本页面的项目的时候,你最好考虑C#/ASP.NET或者 Java/JSP或者也许Python同样是一个更好的选择。

 

浏览:  


人支持

发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口
下一篇:没有了
 最新推荐
网智科技诚聘IT精英共创内蒙古IT事业
中国铁通并入中国移动 王建宙任集团总经理  
女子网上视频辱骂四川灾区人民被抓(图)
哀悼地震死难同胞网站变灰色
警方提醒市民:有些捐款救援短信是骗局
网络捐赠成最快方式 支付宝捐赠通道开通
四川汶川发生地震 百度贴吧网友6分钟内播报
紫金山科技杨凤彦经理谈DIY
关于地震的消息最早从那里获得,QQ群?
网站运营专家——黄相如
 相关文章
  • 暂无相关链接
  •  文章评论:
     最新文章
    PHP程序不实用大型系统的九大原因  
    如何使用PHP程序开发高效的WEB网络系统
    PHP上演“草根的革命”开源进军主流应用
    脚本语言必学-PHP精选编程电子书下载
     编辑推荐
    网智科技诚聘IT精英共创内蒙古IT事业
    中国铁通并入中国移动 王建宙任集团总经理  
    女子网上视频辱骂四川灾区人民被抓(图)
    哀悼地震死难同胞网站变灰色
    警方提醒市民:有些捐款救援短信是骗局
    网络捐赠成最快方式 支付宝捐赠通道开通
    四川汶川发生地震 百度贴吧网友6分钟内播报
    紫金山科技杨凤彦经理谈DIY
    关于地震的消息最早从那里获得,QQ群?
    网站运营专家——黄相如
     热门排行
    哀悼地震死难同胞网站变灰色
    北京市有望在IT行业试行在家办公
    谁来保护弱势站长群体的信息安全?
    IT实验室2007年度网络宣传大事例
    访谈:客齐集员工—内蒙古小伙儿姜丰波
    北方新报做媒 一对网络情侣喜结良缘
    3158商机网与IT实验室08元旦联谊活动MTV
    IT实验室与3158商机网元旦活动
    震撼世界!2008年互联网趋势预测
    邢明:明后两年将是互联网的社区年
     
    孵化网站:
    内蒙古文学网 内蒙古医药网 内蒙古网络广告网 内蒙古旅游在线 内蒙古家居装饰网 内蒙古汽车网 新闻网博客频道 婴幼儿保健网
    内蒙古好网 内蒙古房产网 内蒙古拼客 内蒙古大学生网 内蒙古物流网          
    合作伙伴:
    内蒙古新闻网 图吧 飞普科技 盛开元广告 人间指南 内蒙古商报 乌海在线 互联网实验室 中国网站排名  
    合作媒体:
    DoNews IT中国 站长网 落伍者 中国站长站 AdminTech 内蒙古新闻网 北方新报 内蒙古晨报 内蒙古商报 呼和浩特晚报
    友情链接:
    内蒙古电子杂志网内蒙古第一站BIOS之家子寒热点互联网分享IT每一天山西站长网
    内蒙古动漫电影网阿尔山旅游网山炮摇滚视频网草原论坛IT技术部中国生活指南网呼和浩特人才网
    内蒙古拍易拍信息网串串网站导航站长中国网读书志九上网导航 罗伊-电子商务信息网络安全调查
    计算机病毒处理中心鄂尔多斯之窗内蒙信息港内蒙信息网包头热线河套生活网塞外传媒网
    青城之恋包头移动公寓网酷博网内蒙古生活信息呼和浩特餐饮娱乐网包头大学生网7度POP网
    蒙古文化呼和浩特热线媒体网IT动力源呼和浩特好评网牧人部落呼伦贝尔旅游网
    关于本站 - 业务合作 - 广告合作 - 联系站长 - 设为首页 - 加入收藏 - 友情连接 - 雁过留声
    内蒙古IT实验室 版权所有 蒙ICP备05002086
    Copyright(C) 2008 NmgLabs.com All Rights Reserved