Présentation de FrankenPHP, un serveur d’applications PHP moderne
Qu’est-ce que FrankenPHP ?
- FrankenPHP est un serveur d’applications PHP moderne écrit en Go.
- Il intègre l’exécuteur PHP officiel dans le serveur web Caddy et prend en charge HTTP/1.1, HTTP/2 et HTTP/3.
- Il fournit une fonctionnalité de création et de renouvellement automatiques des certificats HTTPS (via Let’s Encrypt ou ZeroSSL).
Fonctionnalités principales
- Il permet de lancer un serveur PHP prêt pour la production avec une seule commande.
- Il permet de générer un binaire autonome pour exécuter des applications web PHP et des outils en ligne de commande sans dépendances.
- Il prend en charge nativement les extensions PHP populaires (OPcache, XDebug, etc.).
Améliorations des performances
- Mode worker : l’application est démarrée une seule fois puis conservée en mémoire.
- Simplicité d’utilisation : prise en charge native par Symfony, API Platform, Laravel, etc.
- Grande vitesse : 3,5 fois plus rapide que FPM sur une application API Platform.
- Efficacité : exploite les goroutines de Go pour offrir de bonnes performances.
- Déploiement simple : s’exécute sous forme d’un binaire unique et ne nécessite aucun service externe.
Les atouts de FrankenPHP
- Configuration simple et rapide : il suffit de copier les fichiers PHP dans la racine documentaire.
- Hautes performances : combine les technologies modernes de serveur web avec un exécuteur PHP pour offrir de très bonnes performances.
- Flexibilité : peut aussi servir telles quelles les applications qui ne sont pas compatibles avec le mode worker.
L’avis de GN⁺
- Point intéressant : FrankenPHP peut nettement améliorer les performances des applications PHP en s’appuyant sur les technologies modernes de serveur web.
- Points à vérifier avant adoption : il faut examiner à l’avance les éventuels problèmes de compatibilité avec l’environnement de serveur PHP existant.
- Regard critique : l’adoption d’une nouvelle technologie peut entraîner une courbe d’apprentissage et un coût initial de mise en place.
- Alternative recommandée : d’autres serveurs PHP offrant des fonctionnalités similaires, comme RoadRunner ou Swoole, méritent aussi d’être envisagés.
- Avantages et inconvénients du choix technologique : le gain de performances et la simplicité du déploiement sont des atouts, mais il faut évaluer avec soin les risques liés à l’introduction d’une nouvelle technologie ainsi que les enjeux d’intégration avec l’existant.
1 commentaires
Commentaires Hacker News
Je n’ai pas fait de développement PHP depuis 10 ans, mais cette landing page a failli me faire revenir à PHP : le design, les couleurs et les animations sont soignés, et la proposition de valeur est bien mise en avant. Cela semble être une bonne façon de démarrer un petit projet.
Développeur C# de longue date, j’utilise maintenant surtout PHP8 : PHP8 est un excellent langage pour terminer rapidement le travail. Cette direction est meilleure que LAMP.
Je suis curieux des performances dans les benchmarks Tech Empower : pour l’instant, le statut est « non terminé » et il se retrouve tout en bas du classement.
J’utilise souvent le serveur web intégré de PHP pendant le développement : il est lent car mono-thread, et inadapté à la production. FrankenPHP semble prometteur, mais le problème du nombre limité de cœurs/threads reste présent. L’image Docker semble prometteuse.
J’ai essayé FrankenPHP, mais c’est très lent : la documentation manque et les performances sont en dessous des attentes. Il revendique des performances 3,5 fois supérieures à FPM, mais en réalité on n’obtient même pas 1 % de ce gain.
FrankenPHP a des problèmes de performances : malgré cela, c’est un projet très prometteur.
Lien connexe : présentation de FrankenPHP, un serveur d’applications PHP écrit en Go.
Comment construire un conteneur Docker : explication de la manière de transformer un nouveau Debian en conteneur nécessaire à l’aide de commandes Docker.
Essai de benchmark Wordpress avec FrankenPHP et mod_php d’Apache : je n’ai pas constaté d’avantage pour FrankenPHP. Le test a été fait avec Docker, et il faudrait creuser davantage.
J’ai apprécié voir ce projet arriver en première page de HN : j’ai l’impression qu’une architecture non partagée avec FPM a apporté à PHP à la fois son succès et ses limites.