1. 程式人生 > 實用技巧 >PHP 與 Swoole 理解與學習

PHP 與 Swoole 理解與學習

php

我們用的 PHP 主要用於 web 開發,通過 nginx、apache 等服務端程式呼叫 php-fpm 處理服務端的業務邏輯,處理完後 php 撤消記憶體並後回結果,由此可見,一個 http 就要載入一次 php 的全部檔案,這也是目前 php-fpm 的缺點之一,並且 php-fpm 不合適 service 端的開發。

下面是我隨便在網上找的 php-fpm 執行流程,各位參考理解一下

Test.cc is for sale
        |
      Nginx
        |
路由到http://www.test.cc/index.php
        |
載入nginx的fast-cgi模組
        |
fast-cgi監聽127.0.0.1:9000地址
        |
www.test.com/index.php請求到達127.0.0.1:9000
        |
php-fpm 監聽127.0.0.1:9000
        |
php-fpm 接收到請求,啟用worker程序處理請求
        |
php-fpm 處理完請求並撤消記憶體,返回給nginx
        |
nginx將結果通過http返回給瀏覽器

總結一下我理解 php-fpm 的優缺點

  • 優點:
  1. 部署簡單
  2. 除錯方便
  3. 基於傳統 php 的專案非常多,易於參考
  • 缺點:
  1. 每次 http 請求都要載入全部的專案檔案
  2. php-fpm 效能不佳,併發效能不好
  3. 核心非同步網路不支援

swoole

這個 swoole 官方的介紹

SWOOLE 是 PHP 的協程高效能網路通訊引擎,使用C/C++語言編寫,提供了多種通訊協議的網路伺服器和客戶端模組

,使 PHP 開發人員可以編寫高效能的非同步併發 TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole 可以廣泛應用於網際網路、行動通訊、企業軟體、雲端計算、網路遊戲、物聯網(IOT)、車聯網、智慧家居等領域。 使用 PHP + Swoole 作為網路通訊框架,可以使企業 IT 研發團隊的效率大大提升。^ [1]^

swoole 相對於 php-fpm 優點:

  • 能搭建 TCP/UDP/UnixSocket 伺服器
  • 原生支援毫秒定時器
  • 非同步 / 同步 TCP/UDP 網路客戶端、非同步 MySQL、非同步 Redis
  • 高效能的協程提高非同步 IO 的效果和效能
  • 常駐的 cli 執行模式,不用每次請求載入一次專案程式碼

swoole 相對於 php-fpm 缺點:

  • 不支援 xdebug,不支援手動 dump
  • 相關文件較少
  • 入門難度高,多數 PHPER 不瞭解 TCP/IP 網路協議、多程序 / 多執行緒、非同步 io 等

詳細的 swoole 介紹可以到 easyswoole 文件中檢視easyswoole 文件

怎麼學習 swoole

  1. 先通略看一看 swoole 的官方文件
  2. 看一下並實現慕課網 singwa 老師的兩個 swoole 教程
  3. esayswoole 的官方入門視訊easyswoole 入門視訊
  4. 看一下開源 swoole 專案,研究別人怎麼用 swoole 實現業務邏輯FaShop - 開源商城系統|部落格:woann-chat 基於 laravelS 和 layim 的聊天系統
  5. 到這裡,你應該就能算會用 swoole 的 phper 了

更多學習內容可以訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)

以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務程式碼寫多了沒有方向感,不知道該從那裡入手去提升,對此我整理了一些資料,包括但不限於:分散式架構、高可擴充套件、高效能、高併發、伺服器效能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell指令碼、Docker、微服務、Nginx等多個知識點高階進階乾貨需要的可以免費分享給大家,需要的可以加入我的PHP技術交流群953224940

進階PHP月薪30k>>>架構師成長路線【視訊、面試文件免費獲取】