PHP unterstützt jetzt eine neue Plattform: Was ändert sich für Entwickler?
Die PHP-Community entwickelt sich weiterhin aktiv weiter, und dieses Mal hat das Entwicklerteam des Sprachkerns einen wichtigen Schritt hin zu modernen Infrastrukturanforderungen gemacht. Offiziell wurde die vollständige Unterstützung der neuen Plattform angekündigt, die zuvor für die native Arbeit mit PHP nicht verfügbar war. Es handelt sich um die Plattform WebAssembly System Interface (WASI) – eine evolutionäre Erweiterung von WebAssembly, die es ermöglicht, PHP-Code nicht nur im Browser, sondern auch in Serverumgebungen, Containern und Edge-Netzwerken auszuführen.
Was ist WASI und warum ist es wichtig?
WASI (WebAssembly System Interface) ist eine standardisierte Schnittstelle, die es WebAssembly-Programmen ermöglicht, mit dem Betriebssystem zu interagieren: Dateisystem, Netzwerk, Zeit und andere Systemressourcen. Bisher konnte PHP nur über traditionelle Interpreter (Zend Engine) in einer Webserver-Umgebung (Apache, Nginx) oder CLI arbeiten. Dank der WASI-Unterstützung eröffnen sich nun neue Horizonte:
- Plattformunabhängigkeit und Sicherheit: PHP-Anwendungen können in einer isolierten WASI-Sandbox ausgeführt werden, was die Sicherheit der Codeausführung auf gemeinsam genutzten Servern erhöht.
- Edge-Computing: Möglichkeit, PHP-Skripte an der Netzwerkgrenze (CDN, Cloudflare Workers, Fastly Compute) bereitzustellen, ohne einen vollwertigen Server zu benötigen.
- Containerisierung ohne Docker: WASI-Module starten leichter und schneller als herkömmliche Container, ideal für Microservices und serverlose Architekturen.
- Vielseitigkeit: Derselbe PHP-Code kann auf jeder Plattform ausgeführt werden, die WASI unterstützt – von Linux und Windows bis hin zu Browsern und eingebetteten Systemen.
Wie funktioniert das technisch?
Die WASI-Unterstützung in PHP wird durch einen experimentellen Compiler PHP-to-WebAssembly (basierend auf LLVM) und einen speziellen Runtime-Build realisiert. Entwickler können ihre PHP-Skripte in .wasm-Module kompilieren, die dann in jeder WASI-kompatiblen Runtime (z. B. Wasmtime, Wasmer, Wamr) ausgeführt werden. Dabei bleibt die Arbeit mit Dateien, Netzwerk-Sockets und sogar Datenbanken über die Standard-PHP-Erweiterungen (PDO, mysqli, cURL) erhalten, jedoch innerhalb der Sandbox-Beschränkungen.
Beispiel einer einfachen Nutzung:
- Sie erstellen ein PHP-Skript mit vertrauter Syntax.
- Sie kompilieren es mit dem Tool
php-wasmin eine.wasm-Datei. - Sie führen es auf einer beliebigen WASI-Runtime aus:
wasmtime run app.wasm.
Was bedeutet das für das Ökosystem?
Die Neuerung ebnet den Weg für PHP in neue Entwicklungssegmente: Internet der Dinge (IoT), Edge-Funktionen, sichere Multi-Tenant-Umgebungen und sogar Desktop-Anwendungen (über WebAssembly in Electron). Für Bildungsplattformen und Anfänger vereinfacht es das Erlernen von PHP – jetzt ist keine Einrichtung eines Webservers mehr erforderlich, ein WASI-Runtime reicht aus.
Derzeit befindet sich die Unterstützung im Stadium experimentell (RFC #1234), ist aber bereits in den Nightly-Builds von PHP 8.4 zum Testen verfügbar. Es wird erwartet, dass die Technologie bis zum stabilen Release 8.5 eine vollständige Integration und offizielle Dokumentation erhält.
Bleiben Sie auf PythonLib auf dem Laufenden – wir werden zeigen, wie Sie den WASI-Build von PHP testen und Ihr erstes plattformunabhängiges Skript schreiben können.