作为PHP开发人员,我们已经习惯于担心sockets。“PHP脚本应该很快就没有生机了”,有些人会这么说,然而也有其他不同的声音“那为了实现这个你为什么不使用Node呢?”
问题是,这些观点会让发展PHP内核以及周边生态系统的尝试停滞不前。
不要误会我的意思:PHP不是为了使用一个事件循环而建立的,PHP也不是为了异步开发而建立的。任何想实现这类事情的尝试都是在违背PHP这门语言建立的初衷。然而许多人认为PHP能够为了适应这些任务而有所改变。
对初学者来说,有合适的ReadPHP。这是一组为了模拟事件循环的依赖扩展和一些核心功能的库。还有其他事情的反应,比如允许和部分功能程序,但重点是反应式编程和事件循环。
然后就有了Hack,这是旨在提供静态类型的PHP的一个超集(由Facebook开发)。此外,Hack还提供了异步语言架构。我们可别忘了Facebook正在写PHP语言规范。他们正在开发HHVM,这是第一个成为传统PHP解释器的主要竞争对手。他们不用推送代码到PHP核心就能塑造新版本的PHP核心。
最后,现代的PHP支持许多异步功能和扩展。它可能不是以事件循环开始的,但有迹象表明PHP有点想往异步的方向发展。
我对异步PHP的出现感到很兴奋,因为我曾经谈过这一点,并且做过关于它的开发工作。我想实现的是,让每一个PHP开发者都能探索异步编程的概念和工具。要认识到,这在我们的掌控之中,而且我们可以没有羞愧地面对PHP的过去和性能。
PHP可能不是工作的最佳工具,但如果我们不探索异步PHP,它就永远不会成为我们工作的最佳工具。