PHP框架中thinkPHP和Swoole有什麼區別?

今天才剛接觸Swoole,看介紹也是模糊不清。有的說開發框架,有的說是非同步通信引擎。那他是兩者中的一個還是兩者的結合體?Swoole能否取代thinkPHP進行web開發?


Swoole不是框架,而是一個C實現的PHP非同步引擎.

Swoole之於PHP,就有點像Node之於JS.

基於Swoole的PHP框架當然能夠取代ThinkPHP.

但ThinkPHP則不可能取代Swoole.

比如Swoole內置的各種非同步API都是ThinkPHP乃至PHP自身所不具備的,或者不方便實現的,比如定時器,非同步HTTP/Redis/MySQL客戶端,等等.


謝邀

swoole/Workerman這類的框架是常駐內存的服務框架,生命周期很長;

Thinkphp仍然是傳統意義上的PHP短生命周期的web框架。

取代這種事情除非是同樣定位上的完全碾壓,否則不會有取代的說法;畢竟兩者定位是不同的


thinkphp就好比把你手裡的石斧,換成了鋼斧,雖然更好用了,但是本質上還是沒有脫離人力這個生產方式。

swoole就相當於直接換炮了...雖然掌握起來會需要更多更深入的知識,但是他是具有革命性的...

在我看來swoole和php7 直接讓php可以承擔更多更強的任務和需求。


Swoole是一個php擴展,但這個擴展與其他正常的擴展不一樣,擴展裡面使用C做了很多Server,有TcpServer、WebSocketServer、HttpServer。

以HttpServer為例:Swoole在CLI就可以啟動HttpServer,不需要PHP-FPM了,由於PHP-FPM的運行機制是腳本執行結束後回收全部資源,所以每一次請求都干一些重複的事,比如:代碼載入、命名空間定義、框架載入,但是這樣比較穩定可靠,而使用Swoole可以在CLI啟動HttpServer,就可以常駐內存了,就不需要每次請求都干那些重複的事了,所以就能有更高的性能,但帶來的副作用就是PHP很多擴展或框架都是以PHP-FPM這樣的模式開發的,很多以前認為正常的事,就不能這樣開發了,當然要注意的地方也不多,記住就好了,但是原來為專為PHP-FPM環境打造的ThinkPHP、Yii、laravel等這些框架都需要改造才能在Swoole中運行,當然這樣的改造,通常會有N個坑等你踩,建議還是自己直接使用Swoole寫一個框架或使用流行的專為Swoole環境開發的框架。

至於非同步那些,PHPer寫習慣了同步,突然寫非同步估計大多人很不習慣,寫同步多好,多開幾十個進程就好啦,等公司業務達到要計較這些個進程的內存錢的時候,再來優化吧。


學那麼多框架幹嘛呢,不就是用來做網站做項目的嗎?框架難道還有高下之分?把項目做好,把商業模式做好,把推廣做好才是重點


Swoole 有兩個,Swoole擴展、Swoole框架,Thinkphp與Swoole 擴展並不衝突,兩者可以聯合使用,先搞好Swoole擴展再說吧


swoole是一個作為非同步通信引擎的開發框架 適合高並發大訪問量及即時通訊業務的處理

thinkphp是一個基於PHP的開發框架 適合新手快速上手開發應用

swoole和thinkphp適應場景不同 性能上swoole更好 易用和文檔完善度上thinkphp更好 目前誰也不能取代誰


推薦閱讀:

Yii測試沒找到PHPUnit_Extensions_Database_TestCase?(已解決)
如何開發 PHP 擴展?PHP 擴展應該注意些什麼?
PHP如何模擬登錄學校個人門戶?
新人剛接觸 PHP,哪種框架比較容易上手?
PHP 的哪個 MVC 框架值得推薦?

TAG:Nginx | PHP框架 | ThinkPHP | Swoole | PHP7 |