Laravel, das führende PHP-Webanwendungs-Framework, hat gerade Version 11.30 veröffentlicht, die voller aufregender neuer Funktionen und Verbesserungen ist, die die Entwicklerproduktivität und Codeflexibilität steigern. Lassen Sie uns die wichtigsten Updates erkunden.
Optimiertes Testen mit neuen Helfern: withDefer()
und withoutDefer()
Laravel 11.30 stellt withDefer()
und withoutDefer()
vor, mit freundlicher Genehmigung von Tim MacDonald. Diese sind von unschätzbarem Wert, wenn Sie Code testen, der verzögerte Aufrufe verwendet, und ermöglichen Ihnen die selektive Deaktivierung der Verzögerung für eine präzise Assertionskontrolle.
Anschauliches Beispiel mit withoutDefer()
:
<code class="language-php">// This won't work correctly User::create(/* ... */); $this->assertAgainstSomeDeferredOutcome(); // This works as intended $this->withoutDefer(); User::create(/* ... */); $this->assertAgainstSomeDeferredOutcome();</code>
Diese verbesserte Kontrolle über verzögerte Vorgänge während des Tests führt zu zuverlässigeren und genaueren Testergebnissen.
Benutzerdefinierte eindeutige Zeichenfolgen-IDs mit dem HasUniqueStringIds
Merkmal
Luke Kuzmishs Beitrag, das HasUniqueStringIds
-Merkmal, ermöglicht es Entwicklern, benutzerdefinierte eindeutige String-IDs als Routenschlüssel zu verwenden, ohne resolveRouteBindingQuery()
zu ändern. Dies erweitert die vorhandenen Merkmale HasUuids
und HasUlid
und bietet eine größere Flexibilität bei der ID-Generierung.
Implementieren benutzerdefinierter eindeutiger Zeichenfolgen-IDs:
<code class="language-php">trait HasTwrnsTrait { use HasUniqueStringIds; public function newUniqueId() { return (string) Twrn::new(); } protected function isValidKey($value): bool { return Twrn::isValid($value); } }</code>
Diese Funktion ermöglicht hochgradig angepasste Modellkennungen und lässt sich gleichzeitig nahtlos in Standardpraktiken von Laravel integrieren.
Erweiterte Autorisierung mit direkter Enum-Unterstützung
Johan van Heldens Update des AuthorizesRequests
-Merkmals akzeptiert jetzt direkt unterstützte Aufzählungen, was mit Laravels jüngster Einführung von Aufzählungen im gesamten Framework übereinstimmt.
Verwenden einer Aufzählung mit der authorize()
-Methode:
<code class="language-php">enum DashboardPermission: string { case VIEW = 'dashboard.view'; } // Previously public function index(): Response { $this->authorize(DashboardPermission::VIEW->value); // ... } // Now public function index(): Response { $this->authorize(DashboardPermission::VIEW); // ... }</code>
Diese Vereinfachung verbessert die Typsicherheit und Lesbarkeit im Autorisierungscode.
Weitere bedeutende Verbesserungen
Version 11.30 enthält außerdem:
Blade::directive
Funktionalität mit einem $bind
Parameter.trans_choice()
Probleme mit Übersetzungsersetzungen behoben, die das Trennzeichen |
enthielten.exists()
anstelle von count()
in bestimmten Szenarien.PostTooLargeException
.failed_jobs_uuid_unique
wurde behoben.Laravel 11.30 unterstreicht das Engagement des Frameworks für kontinuierliche Verbesserung und Entwicklererfahrung. Mit verfeinerten Tests, flexiblen Modell-IDs und optimierter Enum-basierter Autorisierung bietet diese Version Entwicklern leistungsstarke neue Tools für die Erstellung saubererer und effizienterer Codes. Laravel ist nach wie vor die erste Wahl für PHP-Entwickler, die robuste und funktionsreiche Webanwendungen erstellen.
Sind Sie bereit, Laravel zu nutzen, um Ihr Unternehmen voranzubringen? Kontaktieren Sie uns noch heute.
Das obige ist der detaillierte Inhalt vonLaravel Ein Sprung nach vorne in den Bereichen Tests, Modell-IDs und Autorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!