Swoole難上手?從EasySwoole開始
前言
我一生的文章都會放在這裡,我的部落格,我希望每一行程式碼,每一段文字都能幫助你。 https://github.com/CrazyCodes...
大家好,我是CrazyCodes,我沒有消失,最近在準備考試,所以文章出的比較慢,請見諒
有些童鞋感覺對Swoole不從下手,也不知在什麼業務上使用它,看它這麼火卻學不會也是挺讓人捉急的一件事情。
Swoole:面向生產環境的 PHP 非同步網路通訊引擎
啥是非同步網路通訊?
非同步通訊
簡單點來說,就是一個人和一群人的關係,一個人去做十件事,需要一件一件去做,一群人去做10件事,可以分配每個人做每件事。我們用Swoole可以做什麼?
- 聊天室
- 併發的處理 (讀大檔案)
- 非同步MySQL
- 非同步Redis
- 等等
當然不去做,只在看,很難理解為何選擇使用Swoole去做這些。從現在開始,我們暫時不關心上面的這些概念,啥話都不說,就是幹
EasySwoole
EasySwoole ? 名副其實,作者為了讓開發者更便捷的使用Swoole 而封裝的開發框架,地址在下方
EasySwoole https://www.easyswoole.com/
使用EasySwoole你會發現有很多很難理解的概念及用法。沒關係,跟著我,慢慢來~
安裝
EasySwoole的環境要求
- 保證 PHP 版本大於等於 7.1
- 保證 Swoole 拓展版本大於等於 4.3.0
- 需要 pcntl 拓展的任意版本
- 使用 Linux / FreeBSD / MacOS 這三類作業系統
- 使用 Composer 作為依賴管理工具
如果你感覺以上要求太苛刻,你可以選擇使用Docker快速部署一套開發環境或者使用更簡單的 homestead
在使用EasySwoole之前我們要安裝Swoole,Swoole是PHP擴充套件,我們可以通過
pecl install swoole
快速安裝,或者使用原始碼編譯的形式安裝
安裝完擴充套件後,接下來我們就使用萬能composer來安裝EasySwoole
composer require easyswoole/easyswoole=3.x php vendor/bin/easyswoole install
服務管理
EasySwoole(Swoole)與其他框架不同,他不擅長開發Web,請將目標定位在後端服務上。以下內容為引用官方文件
php easyswoole start
Hello World
以下為官方文件內容 https://www.easyswoole.com/Ma...
在專案根目錄下建立如下的目錄結構,這個目錄是編寫業務邏輯的應用目錄,編輯 Index.php 檔案,新增基礎控制器的程式碼
project專案部署目錄 ---------------------------------- ├─App應用目錄 │└─HttpController應用的控制器目錄 │└─Index.php預設控制器檔案 ----------------------------------
<?php namespace App\HttpController; use EasySwoole\Http\AbstractInterface\Controller; class Index extends Controller { function index() { // TODO: Implement index() method. $this->response()->write('hello world'); } }
然後編輯根目錄下的 composer.json 檔案,註冊應用的名稱空間
{ "autoload": { "psr-4": { "App\\": "App/" } }, "require": { "easyswoole/easyswoole": "3.x-dev" } }
最後執行 composer dumpautoload
命令更新名稱空間,框架已經可以自動載入 App 目錄下的檔案了,此時框架已經安裝完畢,可以開始編寫業務邏輯
# 更新名稱空間對映 composer dumpautoload # 啟動框架 php easyswoole start
啟動框架後,訪問 http://localhost :9501即可看到 Hello World 。
元件
EasySwoole提供了很多實用的元件包括
- 控制檯元件
- 定時器
- 觸發器
- 日誌處理等等...
致謝
從下一章開始,我們逐步使用EasySwoole的各項功能並開發一個簡單的併發版爬蟲系統,感謝你看到這裡,希望本文可以幫到你,謝謝