entwickler.de

Peachpie: PHP-Compiler für .NET

Was Peachpie genau tut, ist durchaus verwirrend – PHP und .NET, das passt auf den ersten Blick ja nicht so richtig gut zusammen. Was wird also wozu kompiliert? Warum braucht man das? Mit diesen Fragen steigt Scott Hanselman in den Test des Projekts ein, das derzeit in Version 0.7.0 vorliegt und sich noch in der Alpha-Phase befindet.

PHP für .NET compilen

Peachpie kompiliert PHP-Code in .NET Intermediate Language. Dazu arbeitet der Compiler mit Microsoft Roslyn, was zusammen mit einer Typenanalyse zu einer besseren Performance führen soll. Das wird als eines der Projektziele benannt. Ein weiteres Ziel stellt die Erhöhung der Sicherheit dar; auch soll Peachpie Entwickler dabei unterstützen, Cross-Plattform-Anwendungen aus Legacy-Code zu erzeugen. Auch können so hybride Apps entstehen: PHP-Anwendungen können nach dem Kompilieren für .NET um in C# geschriebene Teile ergänzt werden, die nahtlos mit dem PHP-Code interagieren. Der Code ist also interoperabel. Ein Beispiel für interoperablen C#- und PHP-Code kann auf GitHub gefunden werden; auch gibt es auf YouTube einige Video-Tutorials zum Tool zu sehen, unter anderem zur Interoperabilität:

Peachpie funktioniert mit .NET Core 1.1 und höher, benötigt einen MySQL-Server der auf einem vorkonfigurierten Port läuft (3306) und kann mit Visual Studio 2017 und VS Code verwendet werden. Das ist jedoch optional; wer mit VS Code arbeitet, kann zusätzlich auf eine Extension zur Integration des Compilers in die Plattform zurückgreifen, die auf dem Visual Studio Marketplace zur Verfügung steht.

WordPress auf .NET mit Peachpie

Ein Anwendungsfall von Peachpie ist der Betrieb von WordPress-Installationen auf Windows-Servern. Auch hier wird eine verbesserte Performance als Vorteil der Verwendung des Compilers angegeben; außerdem können Plugin-Funktionen so via C# in das Projekt eingebunden werden. Zur Adaption des CMS auf .NET via Peachpie wurden nur wenige Modifikationen vorgenommen; eine davon ist die Verwendung des Ports 3306 als Default-Einstellung in der Datei wp-config.php. Eine Anleitung für das Kompilieren von WordPress in Peachpie kann im Blog zum Projekt gefunden werden. Dort wird jedoch auch darauf hingewiesen, dass es sich bislang um einen Proof of Concept handelt, nicht um eine fertige Implementierung.

Auch kann der PHP-Compiler der Azure Cloud verwendet werden; dort ist die Verfügbarkeit von PHP oder WordPress jedoch keine große Neuerung an sich, sondern gehört zum Standard. Ein Performance-Test von Peachpie gegen reinen PHP-Code mit den Standard-Tools für Web-Applications auf Azure zeigt jedoch, dass die Response-Time des neuen Compilers deutlich besser war als die von reinem PHP-Code.

Peachpie Benchmark. Quelle: http://www.peachpie.io/2016/07/azure.html

Peachpie in der .NET Foundation

Außerdem gehört Peachpie seit Juli dieses Jahres der .NET Foundation an. Dies soll unter anderem dazu beitragen, die langfristige Weiterentwicklung des Projekts zu sichern und den Open-Source-Status auf Dauer garantieren zu können.

Noch sind nicht alle geplanten Features umgesetzt worden, wie ein Blick auf die Roadmap zeigt. Sowohl für WordPress als auch für PHP gilt, dass noch nicht jedes Feature implementiert wurde. Auch können bislang keine Issues auf GitHub eröffnet werden, um Bugs zu melden. Dafür steht Gitter als Kontaktmöglichkeit zur Verfügung; Issues auf GitHub sollen folgen, sobald Release 1.0 erreicht ist. Der Compiler ist bereits jetzt auch als NuGet-Paket erhältlich, auf GitHub gibt es einen Getting-Started-Guide.

Name Peachpie
Projektwebsite http://www.peachpie.io/
GitHub https://github.com/peachpiecompiler/peachpie


Go for PHP Developers

mit Terrence Ryan (google)

Everything you need to know about PHP 7.2

mit Sebastian Bergmann (thePHP.cc)