บทความ

รู้จักกับ FrankenPHP

The Modern PHP App Server, written in Go FrankenPHP เป็น PHP Application Server ใหม่ที่ถูกเขียนขึ้นมาบนภาษา Go ถูกพัฒนาโดยนาย Kévin Dunglas, สมาชิกหลักของทีม Symfony นะครับ โดยความสามารถที่น่าสนใจของ FrankenPHP นี้ก็พาเอาฟีเจอร์ที่เป็น modern ของ Web Application Server สมัยนี้เข้ามาให้ใช้งานได้ใน PHP

เผยแพร่
เวลาอ่าน
2 นาที
แท็ก
#Performance

FrankenPHP เป็น PHP Application Server ใหม่ที่ถูกเขียนขึ้นมาบนภาษา Go ถูกพัฒนาโดยนาย Kévin Dunglas, สมาชิกหลักของทีม Symfony นะครับ โดยความสามารถที่น่าสนใจของ FrankenPHP นี้ก็พาเอาฟีเจอร์ที่เป็น modern ของ Web Application Server สมัยนี้เข้ามาให้ใช้งานได้ใน PHP นะครับ ส่วนหนึ่งของ Feature ที่น่าสนใจมีตามนี้ครับ

Extensible

  • ใช้งานได้กับ PHP v 8.2+ ขึ้นไป extensions PHP ส่วนใหญ่และ Caddy modules (Go module ที่ใช้ run web server)

มีเพียง Service เดียว

ถูกออกแบบมาด้วยความเรียบง่ายเป็นหลักนะครับ โดยมีเพียง service เดียว Binary เดียว ถ้าใช้ FrankenPHP แล้วไม่จำเป็นต้องมี PHP-FPM อีกต่อไป ตัวเวปเซิฟเวอร์ run ผ่าน SAPI (Server Application Programming Interface) ที่ถูกออกแบบมาใช้สำหรับ Go Web Server โดยเฉพาะ

Deploy ง่ายมาก

ตัว FrankenPHP สามารถ Deploy ผ่าน Docker Image ได้ แบบ Cloud Native App ทั่วไปเลยทีเดียว ใช้งานได้กับ Kubernetes และ Cloud Platform อื่น ๆ นอกจากนี้ ยังสามารถที่จะรวม Package PHP เป็น Standalone Executable Static Binary โดยไม่ต้องติดตั้งโปรแกรมอื่นเพิ่มเติมได้อีกเลย

Worker mode

คือทำการ Boot Web Application ของเราเพียงครั้งแรกครั้งเดียว แล้วเก็บไว้ run ต่อไปผ่าน memory ไม่ได้มีการอ่าน code ผ่าน PHP ไฟล์ เหมือน PHP-FPM แบบเดิมอีกต่อไปแล้ว (ความสามารถเดียวกับ Swoole, Road Runner)

103 Early Hints

Early Hints เป็นฟีเจอร์ใหม่บน Web Platform ที่ช่วยให้เวปโหลดเร็วขึ้น ถึง 30% FrankenPHP เป็น เพียง PHP SAPI ตอนนี้ที่ support Early Hints

การทำงานแบบ Real-time

ด้วย Mercure hub ที่ถูกสร้างมาแบบ Built-in PHP Apps ของเราสามารถส่ง Event ไปยัง browser ที่ทำการเชื่อมต่ออยู่ได้ โดย browser จะได้รับข้อมูล payload มาในแบบ JavaScript event เลยทีเดียว (ใช้แทน Web Socket)

Zstandard และ Gzip compression

สนับสนุนการ บีบอัดข้อมูลแบบสมัยใหม่ภายในตัว

Structure logging

สนับสนุนการ logging ที่มีรูปแบบทันสมัยมากขึ้น

Prometheus metrics และ Tracing

สนับสนุน Prometheus แบบ Built-in

HTTP/2 & HTTP/3

สนับสนุน HTTPS, HTTP/2 และ HTTP/3 แบบ native

HTTPS Automation

สนับสนุนการการสร้าง HTTPS Certificate, renew และ revoke แบบอัตโนมัติ

Graceful Reload

Deploy App ได้แบบ zero-downtime


Laravel Octane + FrankenPHP

นอกจากนี้แล้ว Laravel Octace ยัง support การใช้งาน FrankentPHP อีกด้วย แม้ตอนนี้อาจจะยังเป็น Beta อยู่นะครับ โดยมีการ Benchmark ที่น่าสนใจว่าได้ Performance ที่เร็วกว่าการ run Laravel App ผ่าน Swoole หรือ RoadRunner อีกด้วย

ถ้าอยากรู้ว่าจะติดตั้ง Laravel Octane กับ FrankenPHP อย่างไร ไปดูตาม Documentation เพิ่มเติมได้เลยครับ

แหล่งอ้างอิง

หากสนใจจะลองใช้งาน FrankenPHP ไปดูต่อได้ตาม link นี้เลยครับ

ดูบน YouTube

อ่านต่อ

ล่าสุด

ดูทั้งหมด →