Das Ende der Zeile für PHP unter Windows

PHP gibt es vielleicht schon eine Weile, aber es ist immer noch ein wichtiges Webentwicklungstool. Aufbauend auf einem deklarativen Programmiermodell erweitert PHP die bekannte HTML-Syntax um zusätzliche Befehle und Funktionen und fügt Ihren Webinhalten Inline-Programmierung und Erweiterungen hinzu. Dieses Modell hat es zu einem wichtigen Bestandteil vieler Content-Management-Systeme gemacht und bietet ein Framework für die Verwaltung datenbankgestützter Inhalte und die Formatierung von Seiten mithilfe dynamischer Vorlagen.

Die Zukunft von PHP unter Windows

Viele dieser CMS laufen in Unternehmensfirewalls und hosten Intranets und interne Tools für die Zusammenarbeit. Es ist daher nicht verwunderlich, dass die offiziellen Windows-Builds von PHP von Microsoft stammen, einem der am längsten laufenden Open Source-Projekte.

Aber alle guten Dinge gehen zu Ende und Microsoft hat kürzlich angekündigt, dass es keinen offiziellen Build von PHP 8 für Windows geben wird. Bisher wurden Windows-Versionen als Binärdateien und Quellcode auf windows.php.net für IIS und andere Windows-Webserver bereitgestellt. Dies wird jedoch in Zukunft aufhören, da das Team, das Windows PHP-Builds bereitstellt, mit anderen Projekten fortfährt, während PHP 7 seinen Support-Lebenszyklus durchläuft.

Was schlägt diese Richtlinienänderung für die Zukunft von PHP unter Windows vor? Und was noch wichtiger ist: Welche Alternativen gibt es, wenn Sie die Gelegenheit nutzen möchten, Ihre Arbeitsweise zu ändern?

Ja, es gibt eine Zukunft

Erstens und vor allem wird PHP für Windows nicht verschwinden. Es ist sehr klar, dass mehr als genug Nachfrage besteht, um weiterhin eine Windows-Version von PHP über PHP 7 hinaus zu erstellen und zu vertreiben. Microsoft wird keine direkten Ressourcen und Server für die Builds bereitstellen, aber höchstwahrscheinlich Lizenzen und Server an spenden das PHP-Projekt, um sicherzustellen, dass zumindest ein Windows-Build aus dem automatisierten PHP-CI / CD-Prozess (Continuous Integration / Continuous Delivery) hervorgeht.

Es ist Sache des PHP-Teams, eine Reihe von Windows-Kenntnissen zu entwickeln, um sicherzustellen, dass die richtigen Tests ausgeführt und der Code korrekt optimiert wird, indem sichergestellt wird, dass in Visual Studio die richtigen Build-Einstellungen verwendet werden. Obwohl das nicht zu schwierig sein sollte, ist es nicht dasselbe wie dedizierte Ressourcen von einem der größten Softwareunternehmen der Welt zu haben.

Alternativ gibt es andere Windows-Versionen von PHP, die von einer Mischung aus Drittanbietern mit eigenen PHP-Tools und von Freiwilligen erstellt wurden, die aus der Open-Source-Codebasis erstellen. Wenn Sie Unterstützung wünschen, sollten Sie wahrscheinlich eine kommerzielle PHP-Version wählen, während offene Builds ideal für die Zusammenstellung einer Windows-PHP-Entwicklungsumgebung sind.

Verwendung von WSL für die PHP-Entwicklung

Wenn Sie nach Alternativen suchen, unterstützt die Cloud-gehostete Anwendungsplattform von Microsoft Azure App Service PHP, obwohl sie hier unter Linux und nicht unter Windows ausgeführt wird. Wenn Sie Code dafür erstellen, möchten Sie wahrscheinlich eine Linux-Version von PHP als Kern Ihres Entwicklungsprozesses, die mit den Remote-Workspace-Tools in Visual Studio Code darauf abzielt. Es gibt viele verschiedene PHP-Erweiterungen für Code, von der IntelliSense-Unterstützung bis hin zu Debugging- und Code-Formatierungs-Tools.

Die Installation von PHP in WSL (Windows Subsystem für Linux) ist einfach genug, da alle Abhängigkeiten, die Sie benötigen, über den von Ihnen ausgewählten Paketmanager installiert werden. Durch die Installation von PHP in einer Ubuntu WSL-Instanz wird der Apache-Webserver installiert und konfiguriert, sodass Sie schnell vom Schreiben und Testen von Code zum Ausführen auf einem Produktionswebserver übergehen können. Die Installation dauert einige Minuten. Alles kann im Windows-Terminal ausgeführt werden und ist über Visual Studio Code unter Windows verfügbar. Es spielt keine Rolle, ob Sie WSL 1 oder WSL 2 verwenden, Sie erhalten mit beiden Versionen fast die gleiche Erfahrung.

Mit einer Linux-PHP-Instanz, die auf Ihrem Entwicklungscomputer ausgeführt wird, können Sie jetzt eine PHP-Anwendung erstellen und testen, bevor Sie sie auf Azure App Services oder einem gehosteten Webserver bereitstellen. Wenn Sie WSL 2 verwenden, kann dieses neue Entwicklungsmodell mit den neuesten Versionen von Docker Containers verwendet werden. Verwenden Sie Ihren Entwicklungs-PC, um Code in WSL zu erstellen, und verpacken Sie ihn dann als Container, um die Bereitstellung auf Servern in Ihrem Netzwerk zu vereinfachen. ein Hosting-Service oder die öffentliche Cloud.

Die Verwendung von PHP unter Linux über WSL ist wahrscheinlich die am wenigsten störende Option für die PHP-Entwicklung unter Windows. Ein alternativer Ansatz könnte jedoch darin bestehen, mit einem moderneren Webentwicklungsmodell zu arbeiten. Sie haben viele Möglichkeiten: Bleiben Sie entweder mit ASP.NET im Microsoft-Ökosystem oder wechseln Sie zu einem plattformübergreifenden Modell, das auf der Entwicklung statischer Websites mit Ansätzen wie Jamstack basiert.

Neue Entwicklungsmodelle: .NET Blazor und Azure Static Web Apps

Eines ist klar: Das von PHP verwendete deklarative Entwicklungsmodell für Webanwendungen verschwindet nicht. Ein plausibles Argument für das Ende der offiziellen Microsoft-Unterstützung für PHP ist, dass neuere Microsoft-Technologien Ihnen ähnliche Entwicklungsoptionen bieten können, weniger Ressourcen verbrauchen und weiterhin plattformübergreifend funktionieren und eine Roadmap enthalten, die neuere Webtechnologien unterstützt.

ASP.NET Core ist eine plattformübergreifende Umgebung, die serverseitigen .NET-Code verwendet, um HTML- und JavaScript-Komponenten bereitzustellen. Aufbauend auf der tragbaren .NET Core-Laufzeit bietet die Razor-Syntax von ASP.NET Core deklarative Programmiertechniken ähnlich wie PHP. Der große Unterschied besteht jedoch darin, dass Sie es in Verbindung mit dem serverseitigen Blazor-Programmiermodell verwenden.

Blazor Server konzentriert sich auf einseitige Webanwendungen und führt ASP.NET-Code auf Ihrem Webserver aus. Dabei werden Inhalte zu vorgerenderten Webkomponenten mit einer Signal R-Verbindung zwischen Browserinhalten und Back-End-Diensten kompiliert. Dieser Ansatz hat den Vorteil, dass relativ wenig Bandbreite auf Kosten einer gewissen Latenz erforderlich ist, wobei für jede Interaktion eine Roundtrip-Verbindung zwischen Server und Browser erforderlich ist. Durch das Vorrendern von Inhalten auf diese Weise können Benutzer das Gefühl haben, dass eine Anwendung reaktionsfähiger ist, und durch Interaktionen werden die UI-Komponenten aktualisiert.

Die kürzlich erfolgte Einführung von Azure Static Web Apps als Teil von Azure App Services brachte eine neue Methode zum Erstellen und Verwenden von Webinhalten für Azure und Windows. Durch lokales Erstellen von Websites mit Visual Studio Code und Hosten von Inhalten in GitHub werden durch eine benutzerdefinierte GitHub-Aktion aktualisierte Inhalte in Azure bereitgestellt. Websites werden mithilfe von HTML-, clientseitigen JavaScript- und API-Verbindungen zu Datenbanken und anderen Diensten erstellt.

Wie Blazor und PHP verfolgt Jamstack beim Design von Websites einen vorlagengesteuerten Ansatz, eignet sich jedoch weniger für herkömmliche CMS als vielmehr für dateibasierte Inhalte, die über Content Delivery-Netzwerke verteilt werden können, um Inhalte näher an Ihren Benutzern zwischenzuspeichern. Sie können eine inhaltsbasierte Azure Static Web Apps-Site mithilfe von Jamstack-Techniken erstellen. Sie müssen jedoch darauf vorbereitet sein, die gesamte Site jedes Mal neu zu erstellen, wenn Sie neue Inhalte veröffentlichen.

Das Ende der Unterstützung von Microsoft für den eigenen Build von PHP ist keine Katastrophe. Es ist ein Zeichen dafür, dass sich Redmonds Prioritäten geändert haben. Technologien wie WSL und von Azure gehostetes Linux bieten alternative Wege zum Erstellen und Ausführen von PHP-Code.

Dies ist auch ein Zeichen dafür, dass andere, modernere Ansätze für die Entwicklung von Webanwendungen möglicherweise enger an den aktuellen Cloud-zentrierten Pfad von Microsoft angepasst sind, der auf .NET und modernen Anwendungsentwicklungstechniken aufbaut. Was auch immer Sie sich entscheiden, Sie haben viele Möglichkeiten.