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.[1] Im März 2021 erreichte das Projekt die Version 1.0.[2]
PeachPie
| |
---|---|
Basisdaten
| |
Hauptentwickler | iolevel |
Entwickler | iolevel |
Erscheinungsjahr | 2016 |
Aktuelle Version | 1.1.9 (24. Mai 2023) |
Betriebssystem | CLR |
Programmiersprache | C# |
Kategorie | Compiler |
Lizenz | Apache-Lizenz (Apache 2) |
deutschsprachig | nein |
https://www.peachpie.io |
Entwicklung
BearbeitenPeachPies Architektur basiert auf dem Projekt Phalanger, das seinen Ursprung ebenfalls in der Karls-Universität in Prag hat.[3] 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.[4] PeachPie ist gegenüber Phalanger zudem leistungsfähiger.[5] 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.[6]
Das PeachPie Projekt wird von Microsoft unterstützt. Die beiden Autoren, Jakub Míšek und Benjamin Fistein, erschienen mehrfach auf der virtuellen .NET Conf[7][8], dem On .NET Livestream[9][10], sowie dem .NET Rock Podcast.[11] 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.[12]
Ziele
BearbeitenDas 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.[13] Erste Vergleiche deuten eine Beschleunigung der Ausführung gegenüber reinem PHP-Code an.[14] Der unabhängige TechEmpower Plaintext Benchmark[15] zeigte zudem, dass WordPress auf PeachPie 305.612 Anfragen pro Sekunde verarbeiten konnte, verglichen mit PHP, das 45.616 Anfragen pro Sekunde verarbeiten konnte.[16] PeachPie wird regelmäßig innerhalb der TechEmpower Benchmarking Rounds gemessen, wo das Projekt schneller als andere PHP-Frameworks ist.[17] Schon Phalanger zeigte deutliche Leistungsverbesserungen gegenüber PHP 5.4 auf.[18]
- 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.[19] 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.[20]
- Cross-Platformität: PeachPie kann auf der .NET Core Plattform laufen, daher können PHP-Applikationen auf Windows, MacOS und Linux ausgeführt werden.[21]
Unterstützte Anwendungen
BearbeitenStand 2019, werden WordPress[22], CodeIgniter und MediaWiki[23], die Software, auf der Wikipedia läuft, offiziell unterstützt.
Einzelnachweise
Bearbeiten- ↑ .NET Foundation. Archiviert vom (nicht mehr online verfügbar) am 10. August 2020; abgerufen am 28. Mai 2019. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ heise online: PHP-Compiler für .NET: PeachPie erreicht Version 1.0. Abgerufen am 16. März 2021.
- ↑ phpcompiler: Phalanger: PHP .NET compiler revealed (1/2). 4. Mai 2011, abgerufen am 28. Mai 2019.
- ↑ .NET Core Framework - Go Cross-Platform with the .NET Framework. Abgerufen am 28. Mai 2019.
- ↑ Phalanger's PHP on Mono/.NET Updates - Miguel de Icaza. Abgerufen am 28. Mai 2019.
- ↑ Paul Krill: Forget PHP! Facebook’s HHVM engine switches to Hack instead. 20. September 2017, abgerufen am 28. Mai 2019 (englisch).
- ↑ Microsoft Visual Studio: Running PHP on .NET Core with Peachpie. 20. September 2017, abgerufen am 28. Mai 2019.
- ↑ Code Mantisa: S303 - Advanced C# PHP interoperability with PeachPie by Jakub Misek. 18. September 2018, abgerufen am 28. Mai 2019.
- ↑ Benjamin Fistein & Jakub Míšek - Peachpie PHP compiler for .NET. Archiviert vom (nicht mehr online verfügbar) am 28. Mai 2019; abgerufen am 28. Mai 2019. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Peachpie. Abgerufen am 28. Mai 2019.
- ↑ .NET Rocks! vNext. Abgerufen am 28. Mai 2019.
- ↑ European Innovation Council SME Instrument. Abgerufen am 13. Juni 2019.
- ↑ Serdar Yegulalp: Peachpie compiler aims to bring PHP to .Net. 14. März 2016, abgerufen am 28. Mai 2019 (englisch).
- ↑ Peachpie: Wordpress per PHP-Compiler auf .NET nutzen. In: entwickler.de. 4. September 2017, abgerufen am 28. Mai 2019 (deutsch).
- ↑ TechEmpower Web Framework Performance Comparison. Abgerufen am 28. Mai 2019.
- ↑ Ben Adams: Contribute to benaadams/PeachpieBenchmarks development by creating an account on GitHub. 27. Mai 2019, abgerufen am 28. Mai 2019.
- ↑ Ben Adams: Peachpie running PHP on .NET Core and #aspnetcore's Kestrel is pretty impressive at 452,179 requests per second! Especially looking at the top ten PHPs https://www.techempower.com/benchmarks/#section=test&runid=aad43f39-48a2-460c-a363-99cd543a772a&hw=ph&test=plaintext&l=hr9zpb …pic.twitter.com/XFK3ydJlN6. In: @ben_a_adams. 3. Juni 2018, abgerufen am 28. Mai 2019 (englisch).
- ↑ Phalanger: Stuffing PHP With Mono, .NET - Phoronix. Abgerufen am 28. Mai 2019.
- ↑ Running PHP Applications on .NET Core - DZone Web Dev. Abgerufen am 28. Mai 2019 (englisch).
- ↑ Scott Hanselman: The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie. Abgerufen am 28. Mai 2019 (englisch).
- ↑ richlander: .NET Core Guide. Abgerufen am 28. Mai 2019 (amerikanisches Englisch).
- ↑ Scott Hanselman: Peachpie - Open Source PHP Compiler to .NET and WordPress under ASP.NET Core. Abgerufen am 28. Mai 2019 (englisch).
- ↑ Setting up MediaWiki on .NET with Peachpie @ PeachPie | PHP compiler to .NET. Abgerufen am 28. Mai 2019.