PHP一定能讓人想起這句話: PHP是世界上最好的語言!
hyperf開源地址:
瞭解一下Hyperf 是什麼?
Hyperf 是基於 Swoole 4.5+ 實現的高效能、高靈活性的 PHP 協程框架,內建協程伺服器及大量常用的元件,效能較傳統基於 PHP-FPM 的框架有質的提升,提供超高效能的同時,也保持著極其靈活的可擴充套件性,標準組件均基於 PSR 標準 實現,基於強大的依賴注入設計,保證了絕大部分元件或類都是 可替換 與 可複用 的。
本來打算將三個常用的swoole框架 swoft, easySwoole, 與hyperf集中到這篇文章的,但發現主題太大,一篇簡短的文章難以描述清楚,所以先從最新的hyperf框架說起吧。
思考一下為什麼要使用hyperf,列出一些問題點?
1 swoole框架與php框架有什麼相同點和不同點?
2 為什麼要用swoole框架?
3 hyperf簡單好學好用嗎?
文章標題已經定義了我們是圍繞swoole的框架來開展的,所以非原生支援swoole的框架,比如YII或者Laravel,就先不講了,這兩個框架很多PHP開發都熟悉並且在目前多數中小型企業裡一直有使用,當然也可以手動配置整合swoole到框架裡,這篇文章只講原生整合swoole的框架。
學習hyperf的框架一定要熟悉php的基本語法知識,最好把Laravel這個框架有一定了解,學習起來就比較輕鬆,如果熟悉Yii或者Laravel後在去看swoole框架完全是手到擒來,兩個字簡單。
做事,我們要在戰術上藐視“敵人”,戰略上重視“敵人”,首先保持一個良好的心態
1 swoole框架與php框架有什麼相同點和不同點?
分析這個問題時,得先講一講swoole是什麼?
Swoole 使用 C/C++ 語言編寫,提供了 PHP 語言的非同步多執行緒伺服器、非同步 TCP/UDP 網路客戶端、非同步 MySQL、非同步 Redis、資料庫連線池、AsyncTask、訊息佇列、毫秒定時器、非同步檔案讀寫、非同步DNS查詢。 Swoole內建了Http/WebSocket伺服器端/客戶端、Http2.0伺服器端。
除了非同步 IO 的支援之外,Swoole 為 PHP 多程序的模式設計了多個併發資料結構和IPC通訊機制,可以大大 簡化多程序併發程式設計的工作。其中包括了併發原子計數器、併發 HashTable、Channel、Lock、程序間通訊IPC 等豐富的功能特性。
Swoole4.0 支援了類似 Go 語言的協程,可以使用完全同步的程式碼實現非同步程式。PHP 程式碼無需額外增加任何 關鍵詞,底層自動進行協程排程,實現非同步IO。
以上swoole的特性來自於swoole的官網:
https://www.swoole.com/
swoole
簡單點理解:Swoole不是框架,而是一個C/C++實現的PHP非同步引擎.
順便囉嗦一句,swoole已經商業化了,想整合swoole到自己專案裡的普通人記得使用社群版本~
瞭解swoole後再看看關於框架的問題點:
1 swoole框架與php框架有什麼相同點和不同點?
2 為什麼要用swoole框架?
3 hyperf簡單好學好用嗎?
1 swoole框架與php框架有什麼相同點和不同點?
先簡化問題點
相同點:
1)都是php語言(解釋型語言)開發,都需要php底層支撐
不同點:
1 )php執行依賴php-fpm與fastcgi(至於這兩個是什麼,有什麼關係,大家可以自行搜尋一下便清楚)php 框架的請求處理都是以程序為單位來同步執行的,hyperf依賴swoole是有執行緒與協程的支撐,可以自動進行協程排程,實現非同步
2)原生php對資源消耗較大,處理資料能力較弱, swoole 可以提高php的處理效能
3)hyperf依賴swoole庫的支撐,才能執行起來,如果swoole不支援最新版本php(比如8.0)則框架也無法使用,原生php語言沒有這種限制。
如果要深刨底層可能寫20篇文章能說清楚算好的了,這裡只做一個大概性的瞭解。
2 為什麼要用swoole框架?
1)這裡可以返回再次讀一次什麼是hyperf。
2)Yii或者Laravel也可以手動配置swoole,只不過操作過程會複雜化,並且涉及三方SDK時會有一些深坑。
3)整合swoole的框架就是為了簡化配置,操作與流程。
3 hyperf簡單好學好用嗎?
這是一個仁者見仁智者見智的問題,如果有用過go和Laravel會發現整合swoole學習了go的優點, hyperf集成了Laravel的一些實現,使用優秀“輪子”是一件好事。
沒有學習過php的小夥伴會比較吃力, 但可以完全按hyperf的教程一步步學習,世上無難事,只怕有心人。
hyperf官網的網址以及學習文件地址:
https://www.hyperf.io/
hyperf
https://hyperf.wiki/2.0/#/
這篇文章比較簡短,就圍繞著swoole的框架hyperf來說明的,針對中小型的企業,有這套框架來支撐開發還是比較不錯的,穩定了開發效率,提升了效能,我比較建議PHP的開發向swoole的框架靠攏(包括但不侷限於hyperf, esasySwoole, swoft),傳統的php框架真的的是比較浪費資源。