Maison >développement back-end >tutoriel php >Laravel Un bond en avant dans les tests, les identifiants de modèle et l'autorisation
Laravel, le principal framework d'applications Web PHP, vient de publier la version 11.30, remplie de nouvelles fonctionnalités et d'améliorations intéressantes qui stimulent la productivité des développeurs et la flexibilité du code. Explorons les principales mises à jour.
Tests rationalisés avec de nouveaux assistants : withDefer()
et withoutDefer()
Laravel 11.30 présente withDefer()
et withoutDefer()
, gracieuseté de Tim MacDonald. Ceux-ci sont inestimables lors du test de code utilisant des appels différés, vous permettant de désactiver de manière sélective le report pour un contrôle précis des assertions.
Exemple illustratif utilisant 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>
Ce contrôle amélioré des opérations différées pendant les tests conduit à des résultats de test plus fiables et plus précis.
ID de chaîne uniques personnalisés avec le HasUniqueStringIds
trait
La contribution de Luke Kuzmish, le trait HasUniqueStringIds
, permet aux développeurs d'utiliser des identifiants de chaîne uniques personnalisés comme clés de route sans modifier resolveRouteBindingQuery()
. Cela étend les traits HasUuids
et HasUlid
existants, offrant une plus grande flexibilité de génération d'identifiants.
Mise en œuvre d'ID de chaîne uniques personnalisés :
<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>
Cette fonctionnalité permet des identifiants de modèle hautement personnalisés tout en s'intégrant de manière transparente aux pratiques standard de Laravel.
Autorisation améliorée avec prise en charge directe d'Enum
La mise à jour par Johan van Helden du trait AuthorizesRequests
accepte désormais directement les énumérations sauvegardées, ce qui s'aligne sur l'adoption récente par Laravel du framework Enums.
Utiliser un Enum avec la méthode authorize()
:
<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>
Cette simplification améliore la sécurité des types et la lisibilité du code d'autorisation.
Autres améliorations importantes
La version 11.30 comprend également :
Blade::directive
étendue avec un paramètre $bind
.trans_choice()
résolus avec les remplacements de traduction contenant le séparateur |
.exists()
au lieu de count()
dans des scénarios spécifiques.PostTooLargeException
.failed_jobs_uuid_unique
.Laravel 11.30 souligne l'engagement du framework en faveur de l'amélioration continue et de l'expérience des développeurs. Avec des tests raffinés, des ID de modèle flexibles et une autorisation rationalisée basée sur Enum, cette version fournit aux développeurs de nouveaux outils puissants pour créer un code plus propre et plus efficace. Laravel reste un premier choix pour les développeurs PHP créant des applications Web robustes et riches en fonctionnalités.
Prêt à tirer parti de Laravel pour développer votre entreprise ? Contactez-nous aujourd'hui.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!