Hyperf的官方介紹:
Hyperf 是基於Swoole 4.5 實現的高效能、高靈活性的PHP 協程框架,內建協程伺服器及大量常用的組件,性能較傳統基於PHP-FPM 的框架有質的提升,提供超高性能的同時,也保持著極其靈活的可擴展性,標準組件均基於PSR 標準實現,基於強大的依賴注入設計,保證了絕大部分的組件或類別都是可替換與可重複使用。
Hyperf 是命令列Cli模式運行,PHP-FPM模式就是我們常用的模式,其中ThinkPHP,Laravle,Ci等框架都是此種模式,最新版的TP和Laravle也支持了Cli模式!
推薦:《PHP影片教學》
#兩種模式最大差異就是:
##PHP-FPM是:每次回應要求,都要從入口文件開始初始化框架,經過路由轉送到控制器執行得到結果並回傳回應! Cli是:啟動框架之後,框架會常駐內存,啟動一次他會註冊服務到系統,監聽我們的web端口(80或者9501等可以自定義端口),然後每次響應請求都不需要在載入框架的文件,直接路由識別到控制器給你執行邏輯代碼返回結果! 所以Hyperf框架的效能是遠高於TP等傳統框架的。一個只需要加載一次,他就一直在樓下等你。一個是你每次找他,他每次加載一次從樓上下來見你。Hyperf環境需求:
Hyperf僅可運行於Linux 和Mac 環境下,也就是說我們的Windos電腦不支持,但在Windows下可以使用Docker for Windows 來作為運作環境。 運行環境的需求:需要使用composer,如果您的composer是用的是國外鏡像,那就非常慢,這裡分享一個速度很快的鏡像位址:
composer鏡像位址
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
Hyperf的安裝composer指令
在安裝過程中有一系列的詢問,直接回車跳過即可,他都是問你是否安裝各種組件,我們都可以跳過,以後需要用什麼在根據文件的命令安裝即可!
composer create-project hyperf/hyperf-skeleton
至此Hyperf框架就安裝結束了,但這裡還有一個坑要注意,必須關閉swoole的Short Name!
在
extension = swoole.so下面加上swoole.use_shortname = off 即可,範例如下:[swoole]
extension = swoole.so
swoole.use_shortname = off
啟動專案需要在框架根目錄中找到bin目錄,裡面有一個hyperf.php 檔案
在框架bin目錄下執行指令:
php hyperf.php start
若在框架根目錄就需要帶bin路徑:
php bin/hyperf.php start
由於Hyperf 是持久化的CLI 框架,當您修改完您的程式碼後,透過CTRL C 終止目前啟動的進程實例,並重新執行php bin/hyperf.php start 啟動指令即可。
連接埠被佔用怎麼辦?若是啟動過之後,後面在此啟動發現連接埠被佔用,那就查詢一下連接埠進程id,殺死進程就可以再次啟動!
<p>netstat -tunlp | grep 9501<br/>tcp 0 0 0.0.0.0:9501 0.0.0.0:* LISTEN 15893/skeleton.Mast<br/>kill 15893</p>
netstat -tunlp | grep 9501 是查詢9501埠的程序
kill 15893 是殺死15893程序
#框架啟動之後測試存取:http://ip:連接埠
假設伺服器Ip是:47.33.112.136
假設連接埠是:9501
那麼存取位址就是:http://47.33.112.136:9501
#到此,我們就把框架的安裝,啟動,訪問完成了!
總結:總的來說過程並不難,需要有一台學習的伺服器,或者本身是mac電腦,也或者windows電腦下建立Docker環境。 PHP的要求是大於7.3,建議大家使用PHP7.4吧,運行要求的擴充也都需要一併安裝,最後就是要在php.ini加上swoole.use_shortname = off,否則無法啟動框架的!
以上是Hyperf初學安裝到啟動並存取!的詳細內容。更多資訊請關注PHP中文網其他相關文章!