你有没有在网络开发中达到php的实际限制?

时间:2009-09-02 17:52:30

标签: php

除了可伸缩性问题之外,这里有没有人真正偶然发现了一个Web开发问题,其中PHP没有削减它并且不得不去另一种语言/平台?

我对特定场景及其处理方式感兴趣。

感谢。

3 个答案:

答案 0 :(得分:13)

我已经作为PHP开发人员(有时候项目不是太小)工作了3年多,而且我从来没有真正遇到过PHP不会允许我的任何事情要做

当然,您有时/总是必须使用多个服务器,其他一些软件(数据库,反向代理,缓存......);但这是游戏的一部分; - )

实际上,关于PHP的最好的事情是它的“胶水”性质:PHP的作用是允许你将各种东西粘合在一起,使用不同的组件构建你的应用程序。 和PHP做得非常好。

有时候,你必须用C编程来编写一个PHP扩展代码,粘贴到别人没用过的东西上(有很多PHP扩展已经像mysql或curl那样做了,只说两个名字);但是有很多已经存在的扩展,我从来没有这样做过 - 即使我可能会在某一天或某个时间内这样做,只是为了好玩; - )


需要注意的一件重要事情是,您的问题可能始终存在解决方案:

  • 你说的是可扩展性;缓存怎么样?使用几台服务器?使用反向代理? PHP没有问题。
  • 而且,正如你在SO(以及很多地方)所看到的:PHP有一个很棒的社区!


如果我不得不考虑PHP不适合的一件事,我会说“彗星”:每个请求一个进程的PHP模型不适合长轮询等...

对于长时间运行的批次,PHP也不是很好;而且你经常在你的网络应用程序旁边有一些;使用相同的语言可以让你重用代码 - 但是,我总是找到一个(不太难)的解决方案。

哦,我也会说:PHP非常适合Web应用程序......但桌面应用程序不是很好 - 即使它可能是(例如参见PHP-GTK)

答案 1 :(得分:10)

我作为程序员达到的唯一限制是我自己的能力。我曾经在每天点击几百次的网站上工作,并为一个网站组成的网络维护软件,这些网站每天总共超过1M,并且都运行在同一块软件上。压力不在于PHP,压力在于我制作PHP,服务器和数据库都协同工作以正确使用它们并以可扩展的方式做事。

  • 查询优化
  • 数据库优化
  • HTTP缓存
  • 内存缓存/ APC
  • 服务器优化
  • 主/从数据库设置
  • 仿形
  • 选择恰当数量的数据库规范化
  • 正确记录(仅记录有用的记录而不记录它变得无用)
  • 注重细节
  • 正确测试
  • 代码组织
  • 具有良好分支/标记的版本控制
  • 文件服务器与Web服务器与数据库服务器
  • Reverse proxies
  • 一般安全措施(阻止SQL Injection,阻止XSS attacksSession hijacking等)

在使自己成为更好的程序员的过程中学到了所有的东西。没有适当的硬件背后,很少有语言无法在互联网上运行任何网站。作为程序员,您的大部分工作都是找到利用该硬件的最佳方式。

然而,有些事情表明PHP本身并不是那么擅长。这些事情包括:

  • 桌面软件(尽管可能)
  • 守护进程(再次,可能)
  • 及时进行大规模字符串操作(如刮取网站)

答案 2 :(得分:3)

PHP是Turing-complete,因此从技术上讲,它没有任何其他语言所没有的限制。但是,有些事情我觉得在其他语言中更容易做到。