身為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,那麼它就永遠不會成為我們工作的最佳工具。