# PeachPie

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 juillet 2017, le projet est devenu membre de la Fondation .NET.

## Origines

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. 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

Le projet énumère plusieurs objectifs$^,$ :
* 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. Les micro-benchmarks effectués par les auteurs suggèrent une augmentation des performances par rapport au PHP standard dans des cas isolés et les tests ont montré que le projet est capable d'exécuter du code PHP environ deux fois plus vite sur Azure. 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, tandis que PHP standard servait 45 616 requêtes par seconde. PeachPie fait également partie des rondes d'analyse comparative TechEmpower régulièrement publiées, où, à partir de 2019, PeachPie est plus rapide que tout autre framework PHP apparaissant dans le benchmark. Phalanger avait également offert des avantages considérables en matière de performances par rapport à une version Windows 32 bits de PHP 5.4$^,$$^,$.
* 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. Par conséquent, les utilisateurs peuvent utiliser des bibliothèques PHP dans leur. Projets NET et vice versa.
* 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.
* 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 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

À partir de 2019, les applications officiellement testées et prises en charge incluent WordPress$^,$$^,$, MediaWiki, le logiciel qui exécute la page Wikipédia et CodeIgniter. 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.