2008年6月16日星期一

再谈PHP

说起来用PHP做程序开发已经将近7年多了,从php3一直到php5,开发工具也从记事本一直到了Zend Stdio。php的优点自然不必说,随便哪个PHP技术论坛上一抓一把,可这么多项目做完了,总感觉上缺点什么。我不是“种族主义者”,只是谈一下作为开发人员或者项目管理人员最渴望PHP的功能。

内置函数不统一,PHP的内置函数命名可谓是乱得可以了,大写的、小写的、驼峰的、并列的、AtoB的、下划的……几乎每种命名方式都能在php的内置函数中找到,够得上一个“函数命名方式博览会”的了 。很不利于开发人员记忆。

环境差异,看似PHP只存在版本差异,其实如果你在IDC那边的虚拟主机上部署PHP你就会发现,开不开Safe_mode就够弄半天的了,还有引用的这个库那个库的,如果是pear这样的库也就罢了,大不了自己重新include;拿GD库来讲,根本没有办法通过其他方法来代用。如果同时又有幸使用了Zend加密过的php代码……

模板问题,现在用的最多的就属smarty了,可smarty的功能实在太强,里面的循环、判断和自动转换格式的部分,真不知道是给美工做还是给开发人员做更合适。如果不用模板,直接把php嵌入html中,同样的问题。

数据库访问,有很多数据库的访问接口,但始终无法摆脱fetch的命运,不论怎么封包,复杂的SQL语句总归要成了程序开发中的重点和系统运行中的瓶颈。

对象访问,php的对象在不断的增强,但还是有待增强。虽然不会把php当作java来用。

层次,企业环境开发,最希望的是能把系统访问和应用访问分开,界面和程序分开(即MVC),这一点PHP需要很大的工作量才可以做到,于是大多开发人员不得不选择了不分开。所有的代码集中到了一起,逻辑上很乱,也没有办法实现代码重用。

调试环境,相比java的调试环境,Zend Studio还远远不够。

框架,市面上流行的几个PHP框架,例如ZF,无一例外的都是模仿了Struct或者.net,没有真正表现出PHP自己的特色,这似乎成了一个怪圈——如果别人用框架觉得好就可能从php转到struct或者.net,用得不好反而会得出php很烂的结论,从而转到其他语言。

总之,上面的牢骚只是希望php有所改善,并非是挑php的骨头。

没有评论:

发表评论

Powered By Blogger