NativePHP v4 führt einen Rendering-Modus namens SuperNative ein, der Blade-Komponenten in echte native Views verwandelt: SwiftUI unter iOS und Jetpack Compose unter Android, ganz ohne WebView oder HTML-Schicht. Simon Hamp und Shane Rosenthal stellten die Funktion bei The Vibes vor, einem von ihnen ausgerichteten Event mit 100 Teilnehmern in Boston am 30. Juli, einen Tag nach Ende der Laracon US. SuperNative ist in v4 der Standard-Renderpfad, befindet sich mit Version 4.1 aber weiterhin in der Beta-Phase.
Das Komponentensystem heißt EDGE, kurz für Element Definition and Generation Engine. Statt Blade zu HTML zu kompilieren, hat NativePHP eine eigene Blade-Engine gebaut, die Komponenten in eine binäre Darstellung fester Länge umwandelt; ein Interpreter auf der nativen Seite liest diese Daten und baut daraus direkt SwiftUI- und Compose-Views, wobei Speicher mit PHP geteilt wird, statt bei jeder Interaktion eine Bridge zu überqueren. Komponenten funktionieren ähnlich wie Livewire, mit public properties, einer mount()-Methode, Aktionsmethoden und Attributen wie #[Poll], #[Computed], #[Lazy] und #[Locked]. Da die Bildschirme echte SwiftUI- und Compose-Views sind, funktionieren Barrierefreiheits-Features wie VoiceOver, TalkBack und dynamische Schriftgrößen automatisch.
Ein Bildschirm ist jetzt eine PHP-Klasse, die NativeComponent erweitert, gepaart mit einer Blade-View und über ein Route::native-Makro in routes/mobile.php registriert; Layouts erweitern NativeLayout und lassen sich mit Route::nativeGroup mehreren Routen zuweisen. Templates nutzen native Elemente wie <column>, <text> und <pressable> statt HTML-Tags, gestylt mit Tailwind-Klassen, die auf das jeweilige Plattform-Layout gemappt werden, und unterstützen @tap-, @pressDown- und @pressUp-Handler, wobei letztere zwei neu in v4 für Press-and-Hold-Interaktionen sind. Entwickler können einen Bildschirm ohne Xcode oder Android Studio auf einem echten Gerät testen, mit php artisan native:jump, das einen QR-Code für die kostenlose Begleit-App Jump auf iOS und Android ausgibt.
Bestehende v3-Apps müssen nicht komplett umgebaut werden: Eine WebView ist jetzt nur noch eine <webview php url="/" fullscreen />-Komponente, die innerhalb eines nativen Bildschirms platziert werden kann, jede mit eigener dedizierter PHP-Laufzeit, und v4 startet eine WebView erst dann, wenn tatsächlich eine Web-Route gerendert wird. Tests laufen über Pest mit einer FakeBridge, die veröffentlichte Element-Bäume und native Aufrufe erfasst; Native::visit() und Native::test() mounten Komponenten, tap() simuliert Tastendrücke.
Vier zuvor separate Plugins, Device, Dialog, File und System, sind jetzt im Kernpaket nativephp/mobile gebündelt, die einzige Breaking Change dieser Version; Composer verweigert die Auflösung, bis sie mit php artisan native:plugin:uninstall --core-v4 entfernt wurden. Version 4.1, veröffentlicht am 7. August, bringt das Attribut #[Locked], um Schreibzugriffe auf gebundene Properties zu blockieren, TreeObservers plus ein TreeSpy-Testwerkzeug zum Überprüfen veröffentlichter Element-Bäume, ein NativeRouteFallback für Browser, die auf native-only Routen treffen, sowie Warnungen bei nicht unterstützten Tailwind-Klassen statt stillschweigenden Ignorierens. Facades und Events bleiben unverändert, der Vite-Dev-Server ist jetzt über ein --vite-Flag optional, und NativePHP liefert einen Boost-Skill, der Agenten beim Automatisieren des v3-zu-v4-Upgrades helfen soll.
Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.