標籤:

Swoole到底是個什麼東西?

一定要匿名!Swoole,據說是一個非同步處理很牛逼的東西!但是他到底是什麼?PHP擴展?為什麼有人經常用他和node.js之類的做對比!

他和PHP是什麼關係!請非常直白的說下!哦對了!愛php~


這個要回答下,樓上在說PHP的swoole框架,被黑的有點慘。實際上swoole擴展和PHP的框架並沒有關係。

一直以來在其他編程語言程序員心目中PHP就是個套HTML頁面的。所謂PHP程序員就是搞WordPress、discuz二次開發,一個月拿三五千的loser,和我大Java工程師相比簡直low爆了。

但大家黑了PHP半天,才發現PHP最近這幾年反而越來越流行了,PHPer們的工資可一點都不低。就拿我司來說吧,之前面過一個PHP程序員工作三年多,水平一般吧,後來公司開價2萬/m收了。水平好一點的平均都在3-4萬/m。

實際上作為一名PHP程序員,我很清楚PHP的確有很多局限性,比如Unix系統編程、網路通信編程、非同步io,大部分PHPer不懂。PHP界也確實沒有這樣的東西。Swoole開源項目就是為了彌補PHP在這些方面的缺陷誕生的。與WordPress這些產品不同,swoole實際上是一個網路通信和非同步io的引擎,一個基礎庫。PHPer可以基於swoole去實現過去PHP無法實現的功能。swoole為PHPer打開了通往另一個世界的大門。


我覺得韓大師無私的開源和貢獻,給了社區和PHP生態圈帶來了福音。PHP從4 ,5 ,7 每個版本都有不錯的新特性和性能提升,zend底層也不停的優化,還有豐富的擴展。可能大多數的開發者對PHP的觀點還停在幾年以前。


PHP的netty


php現有的應用方式都是基於http的,對於需要快速實時響應的情況比較乏力,比如網路遊戲或者推送服務一般都需要與用戶長期保持一個tcp連接以便實時響應和推送信息。

swoole就是解決這樣應用場景的。

這個是讓php自身建立一個服務,不需要nginx之類的代理,直接監聽埠實現通信。

一種應用方式也可以代替掉nginx做http服務,但一般不會這麼用。


php與外部通信需要藉助系統的socket。

通常使用的Apache nginx就是封裝了的socket,可以實現並發處理。客戶端發送請求到nginx/apache,再轉發到fastcgi埠交給php處理

swoole把系統的socket集成到php底層,php可以直接通過swoole與客戶端交互。

也就是說swoole是個封裝了底層socket的網路庫。


我很中立的問一個問題 既然能彌補PHP這麼多的不足 為什麼官方沒有考慮添加這個擴展?


就是一個底層通信框架,基於socket通信的,其實PHP 也能做多進程編程(擴展支持,workerman是這方面NO.1),swoole使用C 實現的一套PHP擴展,基於它也是做這方面的功能,因為這兩個底層框架的存在,大大擴展了PHP的應用範圍,和不錯的未來期望


你不要學swoole ,學習困難,要錢學習,沒人指導沒人解答,自己摸索很困難,你出錢 swoole那邊的大神給你解答,你學習成本太大,個人建議你學workerman


Swoole 是一個能讓 PHP 干更多以前不能幹的事情的非常強大的擴展。

以前不能幹的事情比如:多進程開發、HttpServer/WebSocketServer/TcpServer、各種非同步IO。

我在試圖做一個基於 Swoole 但非常接近傳統 MVC 框架的 Swoole 框架,把 Swoole 的特性封裝到應用場景之中,讓用戶像沒有使用 Swoole 一樣,但又享受到了 Swoole 特性帶來的性能優勢,還可以干一些常見的、以前 PHP 不能幹或不太擅長的開發。

MixPHP:mixstart/mixphp


最近我也在關注swoole ,對於一個5年phper來說還是需要關注下 不管好壞


@韓天峰


swoole只是一個php的擴展,是擴展,擴展,擴展!

為何那麼多php擴展你們不說,單說這個呢?開源精神? 難道php整個體系不是開源的嗎?

別逗了好嗎?什麼?C語言寫的底層的東西?嚇唬誰呢?難道php 不是C寫的嗎?

就是一個通信方面的擴展而已,php擴展千千萬,為什麼你只知道一個swoole,是因為有個中文作者整天BB吧!

網上把作者自誇的文章都屏蔽掉,你就發現只有workerman才是默默奉獻的那個!!!


推薦閱讀:

在日常的網頁開發中,apache的角色是什麼樣的?(如果並不需要將數據上載伺服器的話),為什麼一定要用
為什麼http請求要3次握手與4次揮手?
有哪些輕量的跨平台WEB運行環境?

TAG:PHP |