Maison >développement back-end >tutoriel php >Utilisation des Higher-Order Messages pour un code plus expressif en Laravel

Utilisation des Higher-Order Messages pour un code plus expressif en Laravel

Susan Sarandon
Susan Sarandonoriginal
2025-01-27 20:14:131088parcourir

Utilisation des Higher-Order Messages pour un code plus expressif en Laravel

Laravel a attiré beaucoup d'attention pour sa simplicité et ses caractéristiques puissantes. Parmi les nombreuses caractéristiques, les nouvelles de haut niveau sont une perle, ce qui rend le code plus expressif et plus simple. Cet article explorera l'application des nouvelles de haut niveau et sa lisibilité à améliorer le code.


Qu'est-ce que les nouvelles de haut niveau?

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


Jetons un coup d'œil à un exemple simple. Supposons que vous ayez une collection d'utilisateurs et que vous souhaitez activer tous les utilisateurs infructueux. S'il n'y a pas de nouvelles de niveau élevé, vous pouvez écrire ceci:

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:

Réduisez le nombre de lignes de code et éliminez les cycles inutiles.

lisibilité: Le code est plus expressif et plus facile à comprendre.

Risque d'erreur plus faible:
    En évitant la circulation manuelle, vous pouvez réduire le risque d'erreurs de type ou d'erreurs logiques.
  • Exemples pratiques
  • <.> 1. Appliquez la méthode à chaque élément de la collection
  • En supposant que vous avez une collection de commandes, et que vous souhaitez marquer toutes les commandes comme étant déjà expédiées:
<.> 2. Utilisez comment filtrer la collection

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:

  • Ils s'appliquent uniquement aux méthodes qui ne nécessitent pas de paramètres supplémentaires.
  • Ils sont principalement utilisés pour des opérations simples. Pour une logique plus complexe, une boucle explicite peut être plus appropriée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Je ne peux pas! NextJS?Article suivant:Je ne peux pas! NextJS?