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

PHPKonf 2025 - FrankenPHP

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Emin Emin
May 31, 2025

PHPKonf 2025 - FrankenPHP

Avatar for Emin

Emin

May 31, 2025
Tweet

More Decks by Emin

Other Decks in Technology

Transcript

  1. 2

  2. Emin Çimen Software Engineer @ Trendyol Experience History Sr. Full

    Stack Developer & Team Leader @ Lotec Backend Developer @Jotform Co-Founder & Head of Engineering @ OnlinePsikolog.com Software Engineer, Team Leader @Insider Web Developer @Enpro Software Development Engineer @Tvystol cimendev 3
  3. 7 FrankenPHP A modern app server for PHP apps: →

    Replaces NGINX+FPM or Apache+mod_php → Built for easy deployments: compatible with Docker, can embed your app in the binary! → The fastest PHP engine → 103 Early Hints support → Built-in real-time support (Mercure) → Compatible with all existing PHP apps: progressive enhancement
  4. 8 FrankenPHP A Modern PHP App Server → Super simple

    to use: • Standalone binary (that can contain your app) • No external dependencies • Batteries included → Built on top of the Caddy web server: • All Caddy features and modules • Benefits from Go features • Extensible: in Go, in C, in PHP → Designed for prod, Cl and dev envs
  5. 9 FrankenPHP → Standalone Go libarary: calls libphp (the official

    PHP engine as a C library) using cgo → Embed PHP in any Go program (static build) → New SAPI for Go net/http ◦ Caddy, Traefik, Kubernetes ◦ Your custom Go app → Caddy module using the library → Unique features
  6. 12 FrankenPHP: At a Glance → Compatible with existing PHP

    apps (including Symfony, Laravel and Wordpress) → Static binary ✨ → Single Docker image 🐳 → Entirely configurable 💅 Caddyfile php.ini → Free software (as in free speech ✊)
  7. 16

  8. 17 FrankenPHP Superpower: The Worker Mode → Boot your application

    once → Keep it in memory → Process incoming requests without having to boot your app again → Relies on goroutines and channels → Compatible with Symfony Runtime
  9. Why do we need to scale? Benchmarks 18 Credits: Dzmitry

    Kazbiarovich https:/ /dev.to/dimdev/performance-benchmark-of-php-runtimes-2lmc
  10. 19

  11. 20

  12. 21

  13. 22

  14. 23

  15. 24