Mathieu Desnouveaux

FrankenPHP, dans les entrailles de l'interpréteur PHP, de machines virtuelles et des threads

Présentation de FrankenPHP, serveur d'application PHP moderne cloud native basé sur Caddy au Forum PHP 2022

Sketchnote du Forum PHP 2022 illustrant la présentation "FrankenPHP, dans les entrailles de l'interpréteur PHP, de machines virtuelles et des threads" par Kévin Dunglas. La schématisation visuelle présente FrankenPHP comme app server cloud native HTTP compliant, les principes (nouvelle couche SAPI FrankenPHP compatible pour tous serveurs Go, basé sur Caddy), les objectifs (compatible app PHP, extensible, marche avec 1 conteneur, marche sans Docker, free software), le worker mode (boot, load request/response avec performance éco conception), comment ça marche (interpréteur PHP as C library, C en Go = Go en C, CGO, SAPI en CGO, PHP pas compatible Go routing, OpCache hardcore), et next (site debug profilo).

Cette sketchnote a été réalisée lors du Forum PHP 2022. Elle illustre la présentation "FrankenPHP, dans les entrailles de l'interpréteur PHP, de machines virtuelles et des threads" donnée par Kévin Dunglas, qui présente ce nouveau serveur d'application PHP révolutionnaire, app server cloud native et HTTP compliant.

Contenu de la présentation

Kévin Dunglas présente FrankenPHP, une innovation majeure dans l'écosystème PHP. Ce projet introduit une nouvelle couche SAPI (Server Application Programming Interface) compatible avec tous les serveurs Go, basée sur Caddy. L'approche technique est ambitieuse : intégrer l'interpréteur PHP comme bibliothèque C, utiliser CGO pour faire communiquer C et Go, et implémenter une SAPI en CGO.

La présentation détaille les objectifs : créer une solution compatible avec les applications PHP existantes, extensible, fonctionnant avec un seul conteneur mais aussi sans Docker, le tout en tant que logiciel libre. Le worker mode apporte des gains de performance significatifs avec un cycle optimisé : boot, load, puis gestion des requêtes/réponses en continu. Bien que PHP ne soit pas nativement compatible avec le routing Go et que l'OpCache soit "hardcore", FrankenPHP ouvre de nouvelles perspectives pour le déploiement d'applications PHP modernes.

Points clés à retenir

  • App server moderne : cloud native et HTTP compliant, basé sur Caddy
  • Architecture innovante : nouvelle couche SAPI compatible avec tous serveurs Go via CGO
  • Objectifs ambitieux : compatible apps PHP, extensible, marche avec/sans Docker, free software
  • Worker mode performant : cycle boot → load → request/response continu pour l'éco-conception
  • Défis techniques : intégration PHP/Go, routing non-compatible, OpCache complexe mais next-gen
Thèmes:
🐘 PHP 🛠️ Tools 🔧 DevOps
Événement:
🎤 Forum PHP

Source: Kévin DUNGLAS
Carnet:
📚 Carnet 2022-2023

Cette sketchnote est disponible dans un carnet physique.

Publié le 14 octobre 2022