4 points par GN⁺ 2024-05-31 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-05-31
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.