Maison >développement back-end >tutoriel php >Utilisation des Higher-Order Messages pour un code plus expressif en Laravel
Messages de niveau élevé Il s'agit d'une méthode qui peut appeler une autre méthode sur chaque élément de l'ensemble ou de l'objet, sans écrire de cycle explicite. En d'autres termes, c'est un raccourci grammatical qui rend votre code plus lisse et plus facile à lire.
Cette fonctionnalité est particulièrement utile lors du traitement de l'ensemble dans Laravel, mais elle convient également à d'autres contextes.
Exemple classique: collection
Utilisez des nouvelles de niveau élevé, vous pouvez simplifier ce code en une seule ligne:
Ici, est une méthode de rassemblement,
<code class="language-php">$users = User::where('active', false)->get(); foreach ($users as $user) { $user->activate(); }</code>est une méthode que vous souhaitez appeler sur chaque élément où la collection. Les nouvelles de niveau élevé évitent la circulation explicite.
<code class="language-php">$users = User::where('active', false)->get(); $users->each->activate();</code>Pourquoi utiliser des messages de niveau élevé?
each
activate
Code simple:
lisibilité: Le code est plus expressif et plus facile à comprendre.
Risque d'erreur plus faible:Vous pouvez également utiliser des messages de haut niveau pour filtrer la collecte. Par exemple, le filtrage des utilisateurs qui ont vérifié les e-mails:
<.> 3. Utilisez pour transmettre
Convertissez la collection en résultats de chaque méthode d'application d'élément. Par exemple, obtenez le nom complet de tous les utilisateurs:
<code class="language-php">$orders = Order::where('status', 'pending')->get(); $orders->each->markAsShipped();</code>
Utilisation avancée
<.> 1. Call de chaîne de méthode
<code class="language-php">$verifiedUsers = $users->filter->hasVerifiedEmail();</code>Les messages de niveau élevé peuvent être utilisés pour effectuer des opérations complexes avec d'autres méthodes de collecte. Par exemple, pour activer tous les utilisateurs infructueux et retourner leurs e-mails:
map
<.> 2. Utilisez la relation avec éloquente ensemble
Vous pouvez également utiliser des messages de niveau élevé avec Eloquent. Par exemple, en supposant que chaque utilisateur a plusieurs publications et que vous souhaitez publier les publications à publier:
<code class="language-php">$fullNames = $users->map->getFullName();</code>
limitation
Bien que la fonction de message de niveau élevé soit puissante, elles ont également certaines limites:Conclusion
Les messages avancés sont une fonctionnalité peu connue mais extrêmement utile dans Laravel. Ils vous permettent d'écrire du code plus expressif, concis et lisible tout en réduisant le risque d'erreurs. Que vous travailliez avec des collections, des relations éloquentes ou d'autres objets, les messages d'ordre supérieur peuvent grandement simplifier votre code.
Alors la prochaine fois que vous écrirez une boucle, demandez-vous : « Puis-je utiliser des messages d'ordre supérieur ici ?
Avez-vous déjà utilisé des messages de haut niveau dans vos projets ? Veuillez partager vos expériences et cas d'utilisation dans les commentaires !
N'oubliez pas de partager cet article avec vos collègues développeurs Laravel pour leur faire part de cette astuce utile. ?
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!