Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHP8版!Swooleのフレームワークを比べてみた

 PHP8版!Swooleのフレームワークを比べてみた

PHPerKaigi2021の発表資料です

PHPerKaigi2019でお話しした内容( https://fortee.jp/phperkaigi-2019/proposal/61b5c154-7b53-4d78-820a-cf328f6d3360 )を
PHP8の環境で、再度検証してみた話をお伝えします
さらに、Swooleを用いたフレームワークでもっともGitHubの更新頻度が高い
Hyperfを加えて、4種類のフレームワークをくらべてみます
そもそも、PHP8のJITはどれだけSwooleに有利に働くのでしょうか?
PHP8の環境における、No.1 Swooleフレームワークはどれだ!

Avatar for CyberAgent SGE Engineer

CyberAgent SGE Engineer

March 27, 2021
Tweet

More Decks by CyberAgent SGE Engineer

Other Decks in Programming

Transcript

  1. • גࣜձࣾαΠόʔΤʔδΣϯτ • 4(&౷ׅຊ෦ٕज़౷ׅࣨࣨ௕ • ࢠձࣾࣾ$50 • גࣜձࣾ$SBGU&HH • גࣜձࣾαϜβοϓ

    • നҪɹӳ • ΤϯδχΞ • #MPH IUUQBNFCMPKQHPPEPP ͓લɺ୭Α • 5XJUUFS !HPPEPP • %2 ͙ͪ͢Ή '#  
 ϓΫϦϙ ཱྀܳਓ
  2. )ZQFSGͷϑΥϧμߏ੒ ࠷খݶ Projec t ! appɹɹɹɹɹɹɹɹ "ɹ! Controller s "ɹ"ɹ!

    AbstractController.ph p "ɹ"ɹ# BooksController.ph p "ɹ! Model s "ɹ"ɹ# Books.ph p "ɹ! Exceptio n "ɹ# Listene r ! confi g "ɹ! config.ph p "ɹ# routes.ph p ! publi c ! runtim e "ɹ! log s "ɹ! containe r "ɹ# sessio n ! storag e "ɹ# view s "ɹɹɹ# index.twi g # bi n ɹɹ# hyperf.ph p  )ZQFSG
  3. • Built-in high performance network server(Http/Websocket/RPC/TCP ) • Flexible componentizatio

    n • Flexible annotation functio n • Diversi fi ed command terminal(Console ) • Powerful Aspect Oriented ProgrammingʢAOPʣ • Perfect Container management, Dependency Injection (DI ) • Flexible event mechanis m • Implementation of HTTP message based on PSR- 7 • Event Manager Based on PSR-1 4 • Middleware based on PSR-1 5 • Internationalization(i18n) suppor t • Simple and ef fi cient parameter validato r •High performance connection pool(Mysql/Redis/RPC)ɼAutomatic reconnectio n •Database is highly compatible Larave l •Cache Redis highly compatible Larave l •Ef fi cient task processin g •Ef fi cient seconds cronta b •Process poo l •Flexible exception handlin g •Powerful log syste m •Service registration & discover y •Service breake r •Service restriction s •Service fallbac k •Con fi guration Cente r •Apoll o •Consul https://github.com/swoft-cloud/swoft ͷREADME Ҿ༻ɿ  4XPGU
  4. •Built-in high performance network serve r •Flexible annotation functio n

    •Powerful Aspect Oriented ProgrammingʢAOPʣ •Perfect Container management, Dependency Injection (DI ) •Implementation of HTTP message based on PSR- 7 •Middleware based on PSR-1 5 •High performance connection pool(Mysql/Redis/RPC)ɼ Automatic reconnectio n •Database is highly compatible Larave l •Cache Redis highly compatible Larave l ಛ௃  4XPGU
  5. 4XPGUͷϑΥϧμߏ੒ ࠷খݶ Projec t ! appɹɹɹɹɹɹɹɹ "ɹ! Controller s "ɹ"ɹ#

    BooksController.ph p "ɹ! Model s "ɹ"ɹ# Entit y "ɹ"ɹ # Books.php "ɹ# bean.ph p ! publi c ! runtim e "ɹ! log s "ɹ! cache s "ɹ# session s ! resource s "ɹ# view s "ɹɹɹ# book s "ɹɹɹɹɹ# view.ph p # bi n ɹɹ! bootstrap.ph p ɹɹ# swoft  4XPGU
  6. w "OOPUBUJPOͷॻ͕ࣜҰ෦มΘͬͨ 
 3FRVFTU.BQQJOHͷNFUIPEͷࢦఆ  w %#Ϋϥεͷվળ 
 4XPGUa%Ca%# 

    w 4FTTJPOΫϥεͷվળ 
 4XPGUa)UUQa4FTTJPOa)UUQ4FTTJPO  4XPGU Wͷؾ͍ͮͨมߋ఺
  7. ಛ௃  &BTZ4XPPMF •Built-in HTTP, TCP, WebSocket,Udp Coroutine Serve r

    •Global dependency injection containe r •PSR-7 based HTTP message implementatio n •RESTful supporte d •HTTP,TCP, WebSocket, Udp middleware suppor t •Mysql, Redis, RPC, HTTP Coroutine Client s •High performance route r •Universal connection pool s •Remote Console support W
  8. &BTZ4XPPMFͷϑΥϧμߏ੒ ࠷খݶ Projec t ! Appɹɹɹɹɹɹɹɹ "ɹ! HttpControlle r "ɹ"ɹ!

    BooksController.ph p "ɹ"ɹ# Router.ph p "ɹ! Mode l "ɹ"ɹ# BookModel.ph p "ɹ# Utilit y "ɹɹɹ# Poo l "ɹɹɹɹɹ# MysqlObject.ph p ! EasySwooleEvent.ph p ! View s "ɹ# index.twi g ! Lo g ! Tem p ! vendo r ! Stati c "ɹ! cs s "ɹ# j s ! easyswool e ! produce.ph p # dev.php  &BTZ4XPPMF
  9.  4XPPMF༻ͷDPO fi Hੜ੒  -BSBWFM4XPPMF $ php artisan vendor:publish

    --tag=laravel-swoole  DPO fi HTXPPMF@IUUQQIQΛઃఆ
  10.  ىಈ  -BSBWFM4XPPMF $ php artisan swoole:http start ॳظઃఆͩͱ൪ϙʔτͰ଴ͪड͚·͢

     OHJOYͷઃఆ proxy_pass http://127.0.0.1:1215 QSPYZ@QBTTͰઃఆ͠·͢ https://github.com/swooletw/laravel-swoole/wiki
  11. %FGBVMU 4MJN )ZQFSG W 4XPGU W &BTZ4XPPMF W -BSBWFM W

    -BSBWFM 4XPPMF ճ໨       ̎ճ໨       ճ໨       ճ໨       ̑ճ໨       ճ໨       ճ໨       ճͷฏۉ        1)14XPPMF
  12. %FGBVMU 4MJN )ZQFSG W 4XPGU W &BTZ4XPPMF W -BSBWFM W

    -BSBWFM 4XPPMF ճ໨       ̎ճ໨       ճ໨       ճ໨       ̑ճ໨       ճ໨       ճ໨       ճͷฏۉ        1)1 +*5PGG 4XPPMF
  13. %FGBVMU 4MJN )ZQFSG W 4XPGU W &BTZ4XPPMF W -BSBWFM W

    -BSBWFM 4XPPMF ճ໨       ̎ճ໨       ճ໨       ճ໨       ̑ճ໨       ճ໨       ճ໨       ճͷฏۉ        1)1 +*5PO 4XPPMF
  14. %FGBVMU 4MJN )ZQFSG W 4XPGU W &BTZ4XPPMF W -BSBWFM W

    -BSBWFM 4XPPMF 1)1       1)1 +*5PGG       1)1 +*5PO       ؀ڥ͝ͱͷൺֱ
  15. %FGBVMU 4MJN )ZQFSG W 4XPGU W &BTZ4XPPMF W -BSBWFM W

    -BSBWFM 4XPPMF 1)1       1)1 +*5PGG       1)1 +*5PO       ؀ڥ͝ͱͷൺֱ ≒ ≒ ≒ ≒ ≒ ≒ ≒ ≒ 61 61