除了可扩展性问题之外,有没有人在这里偶然发现了一个Web开发问题,其中PHP没有削减它并且不得不去另一种语言/平台?
我对特定场景及其处理方式感兴趣.
谢谢.
我已经作为PHP开发人员(有时候项目不是太小)工作了3年多,而且我从未真正遇到过PHP不允许我做的任何事情.
当然,您有时/总是必须使用多个服务器,一些其他软件(数据库,反向代理,缓存......) ; 但这是比赛的一部分;-)
实际上,关于PHP的最好的事情就是它的"胶水"性质:PHP的作用是允许你将各种东西粘合在一起,用不同的组件构建你的应用程序.
PHP做得非常好.
有时,你必须用C编程来编写一个PHP扩展,粘合到其他人从未使用的东西(有很多PHP扩展,它们已经像mysql或curl那样,只说两个名字) ; 但是已经有很多扩展已经存在,我从来没有这么做过 - 即使我可能会在某一天或另一天开始这样做,只是为了好玩;-)
需要注意的一件重要事情是,您的问题可能始终存在解决方案:
你讲的是可扩展性; 缓存怎么样?使用几台服务器?使用反向代理?PHP没有问题.
而且,正如你在SO(以及在很多地方)看到的那样:PHP有一个很棒的社区!
如果我不得不考虑PHP不适合的一件事,我会说"彗星":每个请求一个进程的PHP模型不适合长轮询等...
对于长期运行的批次,PHP也不是很好; 而且你经常在你的网络应用程序旁边有一些; 并且使用相同的语言可以重用代码 - 但是,我总是找到一个(不太难)的解决方案.
哦,我还要说:PHP非常适合Web应用程序......但是在桌面应用程序方面并不是那么好 - 即使它是可能的(例如参见PHP-GTK).
我作为程序员达到的唯一限制是我自己的能力.我曾经在每天点击几百次的网站上工作,并为一个网站组成的网络维护软件,这些网站每天总共超过1M,并且都运行在同一块软件上.压力不在于PHP,压力在于我制作PHP,服务器和数据库都协同工作以正确使用它们并以可扩展的方式做事.
查询优化
数据库优化
HTTP缓存
内存缓存/ APC
服务器优化
主/从数据库设置
剖析
选择恰当数量的数据库规范化
正确记录(仅记录有用的记录而不记录它变得无用)
注重细节
适当的测试
代码组织
具有良好分支/标记的版本控制
文件服务器与Web服务器与数据库服务器
反向代理
一般安全性(防止SQL注入,防止XSS攻击,会话劫持等)
所有的事情都是为了让自己成为更好的程序员.没有适当的硬件背后,很少有语言无法在互联网上运行任何网站.您作为程序员的大部分工作是找到利用该硬件的最佳方法.
然而,有些事情本质上PHP并不是那么擅长.这样的事情包括:
桌面软件(尽管可能)
守护进程(再次,可能)
及时进行大规模的字符串操作(如刮取网站)