作为开发人员,你常常会在网上看到不使用XX的理由之类的新闻。而作为最受欢迎的开源服务器端脚本语言,PHP也难逃这样的命运。殊不知,金无足赤、人无完人,再流行的语言都会存在缺点,或者是误解,因此,有些开发者可能就因为这些,就对它敬而远之,这不实在可惜了吗?
本文作者总结了人们对PHP的十大误解,并且进行澄清,有些误解值得深思,而有些又实在是捕风捉影。无论怎样,让我们一起来看下这些误解。
1. PHP是一门面向对象语言,但不是基于OOPS
这是完全不正确的理解,尤其是Java程序员,他们认为PHP不是基于OOPS;但他们会发现许多面向对象的特征,比如,接口、方法、抽象对象等。说实话,初始版的PHP没有太多的面向对象功能,但PHP 5添加很多面向对象技术。更重要的是,你也许会好奇,为什么Bootstrap代码在PHP里会变得那么简单,这个得归功于PHP与OO的结合。
2. PHP无法实现特定的功能
这个误解听起来比较模糊,但有许多开发者认为PHP不能实现内存访问等其他功能。但事实是,PHP是一门可扩展的语言,你只需用C或C++编写一个扩展,进行集成就OK了。或者,你无需创建,网上已经有成千上百个扩展可供使用,你可以根据需要,直接拿来使用。
3. PHP不安全
既然你认为它是不安全的,那为何不为它编写安全的代码呢。我承认,PHP里是有大量不安全的代码,但作为程序员,我们应该尽量编写可靠安全的代码。
如果拿PHP与.NET进行比较,PHP肯定是失败的。但如果你是一个技术娴熟的程序员,你无需安全“帮助”。包括日常的安全问题,但如果他们的路径是动态生成的,那你就得当心了。当然,如果你精通所有的指令,它或许会变的更安全。
4.不适合做大型应用程序
一门语言之所以能用来构建大而复杂的应用,其自身要具有一定的可靠性和高性能,而可扩展的PHP并不符合。但是,如果你设计和开发的应用程序架构很稳定,那应用程序的性能和扩展又会有什么问题呢?
事实是,一些知名的网站都是采用PHP设计的,比如Facebook、Wikipedia、和Yahoo!等,它们都能工作的很好。
5.PHP只能用于网站开发
的确,使用PHP进行网站开发是很普遍的。但命令行接口(CLI:Command Line Interface)可以让应用程序运行在非Web服务器上。
虽然有些应用程序对CPU的要求很高,但通过执行PHP CLI,仍然可以采用PHP进行开发和运行。更重要的是,如果你想使用PHP开发桌面应用程序,只需使用Windows特定扩展即可搞定。
6.开发过程缓慢
对于这样的误解,我实在不知道是从哪里传出来的。有可能你编写的PHP代码很凌乱、并且里面充斥着大量的MySQL语句(它们虽然很有意义,但真不应该放在那里)。而事实上,PHP有大量的框架可供开发者使用,合理使用它们会达到事半功倍的效果,大大缩减开发时间。所以,不要抱怨慢。
7.专业开发者不使用PHP
关于这个误解,坊间有各种各样的说法,比如PHP对初学者是小菜一碟,它是为那些不想认真对待开发的人准备的等等。当然,不得不承认,PHP在某些方面的确没有什么意义,但是对于这样的误解,真的是可笑之至。如果这里有许多Web应用程序都是使用PHP开发,那么想象下,一向严谨的开发商却对PHP敬而远之,乃是完全错误的。
8.性能问题
这个是技巧问题,而不是误解。任何事情都有好有坏。性能优化也一直是开发者们争先讨论的话题。事实上,对于性能低下的应用,里面可能充斥着大量的垃圾代码,比如隐式转换、无用的模块、操作法缺乏重载等,这些都会影响到PHP应用程序的性能。但这最终要取决于你如何使用这门语言去创建一个稳定快速的应用程序。
9.便宜的应用程序意味着质量不高
在开源逐渐成为主流的市场环境下,免费、开源是PHP最大的优势。这意味着大多数拥有专业知识的开发人员都可以提供开发服务,并且还可以为客户节省成本。但这并不意味着质量就有问题,同样也可以开发出高性能的应用程序。
10.PHP被高估了
好吧,这或许只是你的个人想法,大部分的PHP程序员是不会这么想的。
写在最后
随着语言的不断发展和壮大,各种误解也会接踵而来,但无论如何,一些不实的谣言都会不攻而破。常言道,实践是检验真理的唯一标准,所以,在选择相信或不相信之前,最好亲自试验确认下。
Via Bestdesigntuts
6 楼 saiyaren 2013-07-25 16:45
数据库层面如果是读库,一般通过cache解决
网络IO上面一般来说瓶颈不大(每台机器千兆都到不了瓶颈,网络有啥瓶颈),我测试的一般网络不是瓶颈,除非发特小的包,正常的项目中网络没有遇到过瓶颈
磁盘IO更不是瓶颈,PHP一般来说用内存加速器都在内存中存了opcode,对于磁盘根本形成不了瓶颈
最主要的瓶颈还是在CPU上,PHP由于解释型,即使加了内存加速器,性能还不是很高,所以瓶颈在cpu,并不在库,NET IO和wa;
所以优化php,通过hhvm的jit还是很好的,一般来说可以降低cpu 50%-300%,平均50%,左右,这是我测试和线上有数据的
5 楼 月影无痕 2013-07-25 16:08
4 楼 saiyaren 2013-07-12 12:48
你可以尝试用 hhvm,hhvm采用了bytecode+jit,bytecode和php 加速器一样的性能,jit的性能和之前的静态编译一样的性能,直接调用寄存器,应该比java的性能高,我目前的测试以及使用效果来看,但是就是扩展和稳定性不足,需要长期测试。
可以看我的博客
http://saiyaren.iteye.com/
3 楼 hanjiangit 2013-07-11 15:03
2 楼 pdreamer 2013-07-11 10:19
zend studio语法错误都有红色错误提示,PHPUnit等单元测试工具可用。
1 楼 yixiandave 2013-07-11 10:05