Swoole從入門到入土(1)——入坑

入坑一個話題,總得有入坑的理由。有好多話題可供選擇,可是思來想去,對於PHPer進階與其急着去掌握一門新的語言,匆忙地踏足一個新的知識體系,還不如先把php圈子的技能點攢齊了。php

話說Swoole誕生以前,php是世界上最好的語言。但很惋惜php語言沒法支持長鏈接,始終是個遺憾。而自從Swoole誕生以後,php晉升爲太陽系最好的語言。Swoole提供給了php長鏈接、協程、異步任務、微服務的能力,彌補了php短板,讓php有了在即時通信、物聯網、區塊鏈的領域中發力的可能。雖然在Swoole的生態圈子裏發生了一些不太友好的事情,可是神仙吵架絲絕不影響Swoole的優秀。接下來,作好準備,讓咱們一塊兒徜徉在知識的海洋。c++

在這一系列的文章中,咱們會假設你們已經有良好的php基礎,對於擴展的編譯已經熟練掌握。若是對於相關的知識點不甚瞭解,能夠隨時聯繫博主。git

另外,博主使用的操做系統是CentOS 7.5,PHP版本號是7.3.15github

 

這一篇裏,咱們要了解兩個問題:安裝Swoole 和 寫出一個Swoole的Hello world。編程

 

一、安裝Swoolecentos

安裝Swoole有兩種方式,即編譯成php的擴展,或者在編譯php的過程過靜態編譯到php中。兩種方法均可以讓php順利使用上Swoole。固然,爲了編譯方便與靈活,筆者會採用擴展的方式進行編譯。瀏覽器

由於Swoole自身要求PHP版本號>7.1,gcc版本號>4.8,因此若是須要升級gcc的小夥伴能夠運行:bash

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

接着,須要到如下三個地方,下載Swoole擴展的源代碼(任選其一):swoole

https://github.com/swoole/swoole-src/releases
http://pecl.php.net/package/swoole
https://gitee.com/swoole/swoole

開始編譯,編譯過程就是編譯的老套路。請看如下栗子:異步

#簡單編譯
#進入swoole源碼目錄
phpize
./configure --with-php-config=/path/to/php-config
make
make install


#高級編譯
#進入swoole源碼目錄
phpize
./configure --with-php-config=/path/to/php-config --enable-openssl --enable-http2
make
make install

編譯完成以後,進入php.ini中添加extension=swoole.so便可。

爲了確認php是否成功載入了swoole擴展,能夠執行php -m | grep swoole查看結果。以下圖:

 

 

二、寫出Swoole的Hello World

在寫出Swoole的Hello World以前,須要先解決一個問題:在phpstorm中添加swoole的自動提示。

1) 下載https://github.com/wudi/swoole-ide-helper,解壓獲得目錄swoole-ide-helper

2) PhpStorm的菜單項中找到File->Settings->Languages & Frameworks->PHP->inclue path,將swoole-ide-helper目錄加入便可。

接下來,咱們建立一個文件命令爲swoole.php,並從利用Swoole寫一段很簡單的的http服務代碼:

<?php
$http = new Swoole\Http\Server("0.0.0.0", 9501);

$http->on("start", function ($server) {
    echo "Swoole http server is started\n";
});

$http->on("request", function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\n");
});

$http->start();

如今咱們還不須要詳細知識這段代碼每一句什麼做用,只須要先了解這段代碼實現了一個偵聽在9501上的很簡單的http服務。

咱們運行一下這段代碼php swoole.php,以後咱們經過瀏覽器能夠看到如下界面:

 

 

好了,這一節到這裏就大功告成了。以後咱們會逐一討論Swoole這東西能夠爲咱們帶來什麼難以想象的功能。今天就先到這裏吧:)

 

 

---------------------------  我是可愛的分割線  ----------------------------

最後博主借地宣傳一下,漳州編程小組招新了,這是一個面向漳州青少年信息學/軟件設計的學習小組,有意向的同窗點擊連接,聯繫我吧。

相關文章
相關標籤/搜索