# PeachPie

PeachPie ist ein Open-Source-Compiler und Laufzeit-Ersatz der PHP-Programmiersprache für das .Net-Framework und .NET Core. Das Projekt baut auf Microsofts Roslyn Platform und basiert auf dem Phalanger Projekt, welches ebenfalls auf der Karls-Universität entstanden ist. PeachPie kompiliert PHP-Quellcode in CIL-Bytecode und wendet zudem die JIT-Compiler-Komponente des .Net-Frameworks an, um zusätzliche Optimierungen zu ermöglichen und den Anfang des Kompilierungsprozesses zu bearbeiten. Der Zweck von PeachPie ist nicht, nativen Quellcode zu erzeugen oder zu optimieren, sondern PHP-Skripte in einen anwendbaren CIL-Code zu übersetzen, der zudem Metadaten enthält. Im Juli 2017 wurde das Projekt PeachPie Mitglied der .NET Foundation. Im März 2021 erreichte das Projekt die Version 1.0.

## Entwicklung

PeachPies Architektur basiert auf dem Projekt Phalanger, das seinen Ursprung ebenfalls in der Karls-Universität in Prag hat. PeachPie wurde auf Microsofts Roslyn Compiler-Platform gebaut und nutzt Roslyns API. Seit 2016 entwickelt die tschechische Softwareentwicklungsfirma iolevel das Projekt.
Gegenüber Phalanger hat PeachPie zahlreiche Vorteile, sowohl aufgrund Roslyns API, als auch aufgrund der neuen Architektur des Compilers. Phalanger konnte lediglich auf dem .Net-Framework laufen, das auf dem Windows-Betriebssystem ausgeführt werden kann. Plattformunabhängigkeit konnte nur mit Mono ermöglicht werden. Dagegen ermöglicht PeachPie auch die Nutzung des .NET Core Frameworks, das standardmäßig plattformunabhängig ist. PeachPie ist gegenüber Phalanger zudem leistungsfähiger. Der PeachPie-Compiler enthält eine fortgeschrittene semantische Analyse, die C#-ähnliche Symbole erzeugt, und ermöglicht dementsprechend eine beidseitige Interoperabilität zwischen PHP und .NET.
PeachPie zeigt einige Ähnlichkeiten zu Facebooks HHVM Compiler auf, welcher PHP auf einer speziell erstellten Virtual Machine ausführt. Allerdings kündigte Facebook Ende 2017 an, dass Version 3.24 von HHVM die letzte mit PHP-kompatible sein würde, da sich das Projekt in den folgenden Jahren nur noch auf Facebooks eigene Erweiterung von PHP, Hack, konzentrieren werde.
Das PeachPie Projekt wird von Microsoft unterstützt. Die beiden Autoren, Jakub Míšek und Benjamin Fistein, erschienen mehrfach auf der virtuellen .NET Conf, dem On .NET Livestream, sowie dem .NET Rock Podcast. Seit Juli 2017 ist PeachPie Mitglied der .NET Foundation. Im Dezember 2018 enthielt iolevel den Horizon2020 Grant der Europäischen Union, um ihre Arbeit am Projekt PeachPie fortzusetzen und zu erweitern.

## Ziele

Das Projekt gibt mehrere Ziele an:
* Schnelligkeit: Da der PHP-Quellcode in CIL übersetzt und erst daraufhin ausgeführt wird, soll dies zu deutlichen Verbesserungen in der Ausführungsleistung führen. Erste Vergleiche deuten eine Beschleunigung der Ausführung gegenüber reinem PHP-Code an. Der unabhängige TechEmpower Plaintext Benchmark zeigte zudem, dass WordPress auf PeachPie 305.612 Anfragen pro Sekunde verarbeiten konnte, verglichen mit PHP, das 45.616 Anfragen pro Sekunde verarbeiten konnte. PeachPie wird regelmäßig innerhalb der TechEmpower Benchmarking Rounds gemessen, wo das Projekt schneller als andere PHP-Frameworks ist. Schon Phalanger zeigte deutliche Leistungsverbesserungen gegenüber PHP 5.4 auf.
* Interoperabilität: PeachPie erlaubt Benutzern PHP und .NET-Sprachen zu kombinieren. Dies ermöglicht ungewöhnliche Anwendungen, wie C#-Lambdas in einen PHP-Kontext einzufügen oder PHP-Klassen in C# zu erben. Benutzer können zudem PHP-Komponenten innerhalb von .NET-Projekten nutzen und andersherum.
* Zusätzliche Sicherheit: Da PeachPie den Quellcode in eine DLL-Datei kompiliert, können Applikationen ohne den ursprünglichen Quellcode verbreitet werden. PeachPie ermöglicht es, komplette PHP-Applikationen und Frameworks in .NET-DLL-Dateien zu konvertieren und dadurch zum Beispiel im NuGet-Format anzubieten.
* Cross-Platformität: PeachPie kann auf der .NET Core Plattform laufen, daher können PHP-Applikationen auf Windows, MacOS und Linux ausgeführt werden.

## Unterstützte Anwendungen

Stand 2019, werden WordPress, CodeIgniter und MediaWiki, die Software, auf der Wikipedia läuft, offiziell unterstützt.