首頁>技術>

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框架真的的是比較浪費資源。

35
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python速查表:cheatsheet,程式碼開箱即用,爽