PeachPie

compilateur de langage PHP open source et runtime pour .NET et .NET Core

PeachPie est un compilateur de langage PHP open source et un runtime pour .NET et .NET. Il est construit au-dessus de la plateforme de compilation Microsoft Roslyn et est basé sur le projet Phalanger de première génération. PeachPie compile le code source écrit en PHP en octet-code CIL. PeachPie tire parti du composant compilateur JIT de .NET Framework afin de gérer le début du processus de compilation. Son but n'est pas de générer ou d'optimiser du code natif, mais plutôt de compiler des scripts PHP. Assemblages NET contenant du code CIL et des métadonnées. En , le projet est devenu membre de la Fondation .NET[2].

PeachPie
Description de l'image Peachpie-logo.png.

Informations
Dernière version 1.1.9 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/peachpiecompiler/peachpieVoir et modifier les données sur Wikidata
Écrit en C#Voir et modifier les données sur Wikidata
Type CompilateurVoir et modifier les données sur Wikidata
Licence Licence Apache version 2.0Voir et modifier les données sur Wikidata
Site web www.peachpie.ioVoir et modifier les données sur Wikidata

Les origines modifier

L'architecture de PeachPie est similaire au projet Phalanger, qui avait initialement commencé comme cours à l'Université Charles de Prague, en Tchéquie. Il a été mis en œuvre sur Microsoft. Plate-forme de compilateur NET appelée Roslyn, utilisant l'API Roslyn. Depuis 2016, la société tchèque iolevel dirige le développement de PeachPie.

PeachPie présente plusieurs avantages par rapport à Phalanger, à la fois en raison de l'API Roslyn et de l'architecture remaniée du compilateur. Alors que Phalanger n'a pu cibler que le .NET Framework complet, qui ne fonctionnait que sur Windows, et que les capacités multiplateformes ont été obtenues en ciblant Mono, PeachPie permet également une compilation vers .NET Core, étant ainsi multiplateforme par défaut. Les benchmarks publiés à ce jour indiquent des améliorations de performances de PeachPie par rapport à son prédécesseur. Le projet contient une analyse sémantique avancée, qui permet au compilateur de générer des symboles de type C # pour des fonctionnalités d'interopérabilité améliorées. Il existe des similitudes entre PeachPie et le compilateur HHVM de Facebook, qui exécute PHP sur une machine virtuelle spécialement conçue. Cependant, comme Facebook l'a annoncé fin 2017, la version 3.24 de HHVM serait la dernière version compatible avec PHP, car le projet se concentrerait exclusivement sur la prise en charge de l'extension propriétaire de Facebook de PHP appelée Hack. Cela laisse PeachPie comme le seul projet de ce type avec l'aspiration à être compatible avec les versions passées et futures de PHP.

Objectifs modifier

Le projet énumère plusieurs objectifs[3],[4]

  • Performances : étant donné que le code PHP est compilé en CIL puis exécuté, plutôt qu'interprété, cela devrait théoriquement conduire à des améliorations de performances[5]. Les micro-benchmarks effectués par les auteurs suggèrent une augmentation des performances par rapport au PHP standard dans des cas isolés[6] et les tests ont montré que le projet est capable d'exécuter du code PHP environ deux fois plus vite sur Azure[7]. En utilisant le benchmark indépendant de texte en clair de TechEmpower, il a été mesuré que WordPress fonctionnant sur PeachPie était capable de traiter 305 612 requêtes par seconde[8], tandis que PHP standard servait 45 616 requêtes par seconde[9]. PeachPie fait également partie des rondes d'analyse comparative TechEmpower régulièrement publiées[10], où, à partir de 2019, PeachPie est plus rapide que tout autre framework PHP apparaissant dans le benchmark[11]. Phalanger avait également offert des avantages considérables en matière de performances par rapport à une version Windows 32 bits de PHP 5.4[12],[13],[14].
  • Interopérabilité : le projet permet aux utilisateurs d'interopérer entre PHP et. Langues NET. En conséquence, des opérations inhabituelles, telles que l'injection de lambdas C # dans un contexte PHP ou l'héritage de classes PHP en C #, sont possibles[15]. Par conséquent, les utilisateurs peuvent utiliser des bibliothèques PHP dans leur. Projets NET et vice versa[16].
  • Sécurité supplémentaire : étant donné que PeachPie compile tout le code source dans un fichier DLL, les applications peuvent être distribuées sans le code source d'origine. Le projet PeachPie permet de compiler des applications et des frameworks PHP entiers selon la norme. Format DLL NET et distribué, par exemple, sous forme de packages NuGet[17].
  • Capacité multiplateforme : puisque PeachPie peut cibler .NET, qui est compatible avec l'ordinaire .NET Framework, Xamarin et Mono, et fonctionne sur Windows, MacOS et Linux[18] il permet de développer des applications PHP pour tous les appareils et systèmes d'exploitation capables de fonctionner. NET Core.

Applications prises en charge modifier

À partir de 2019, les applications officiellement testées et prises en charge incluent WordPress[19],[20],[21], MediaWiki[22], le logiciel qui exécute la page Wikipedia et CodeIgniter[23]. En outre, un certain nombre d'autres frameworks et programmes PHP ont été confirmés pour fonctionner avec des solutions de contournement par des membres de la communauté open source, par exemple Laravel , WooCommerce ou Magento .

Références modifier

  1. « https://github.com/peachpiecompiler/peachpie/releases/tag/v1.1.9 »
  2. Galloway, « Welcome Peachpie Compiler Platform to the .NET Foundation », The .NET Foundation,
  3. « .NET Foundation », dotnetfoundation.org (consulté le )
  4. (en-US) Hatem Ben Yacoub, « Peachpie, The PHP Compiler and Runtime for .NET », PHP magazine,‎ (lire en ligne, consulté le )
  5. (en) Serdar Yegulalp, « Peachpie compiler aims to bring PHP to .Net », InfoWorld,‎ (lire en ligne, consulté le )
  6. (en-US) « Benchmarks – Peachpie », www.peachpie.io (consulté le )
  7. (de) « Peachpie: Wordpress per PHP-Compiler auf .NET nutzen », entwickler.de,‎ (lire en ligne, consulté le )
  8. Adams, « Peachpie Benchmarks », GitHub
  9. « Round 13 results - TechEmpower », TechEmpower
  10. « TechEmpower Framework Benchmarks », www.techempower.com (consulté le )
  11. (en) Ben Adams on Twitter (@@ben_a_adams), « Peachpie running PHP on .NET Core », sur Twitter, (consulté le )
  12. « Benchmarks », v1.php-compiler.net (consulté le )
  13. (en) « Phalanger: Stuffing PHP With Mono, .NET - Phoronix », www.phoronix.com (consulté le )
  14. « Phalanger by DEVSENSE », v4.php-compiler.net (consulté le )
  15. (en-US) Vaggalis, « Peachpie Open Source PHP to .NET Compiler », i-programmer.info, (consulté le )
  16. (en) Gunnar Peipman, « Running PHP Applications on .NET Core - DZone Web Dev », dzone.com,‎ (lire en ligne, consulté le )
  17. (en) Hanselman, « The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie - Scott Hanselman », www.hanselman.com (consulté le )
  18. (en-US) Richlander, « .NET Core Docs », docs.microsoft.com (consulté le )
  19. (en) Hanselman, « Peachpie - Open Source PHP Compiler to .NET and WordPress under ASP.NET Core - Scott Hanselman », www.hanselman.com (consulté le )
  20. (en-US) « This company figured out how to run Wordpress on .Net », The Next Web,‎ (lire en ligne, consulté le )
  21. (de) « Partnerschaft zwischen Mozilla und BrowserStack & Updates für Symfony », entwickler.de, (consulté le )
  22. (en-US) « Setting up MediaWiki on .NET with Peachpie @ PeachPie | PHP compiler to .NET », www.peachpie.io (consulté le )
  23. (en-US) « Performance Progress Report @ PeachPie | PHP compiler to .NET », www.peachpie.io (consulté le )