Creuser le trait conditionnel de Laravel

DEV - 09/05
Conditionnable est un trait qui ajoute deux méthodes à n'importe quelle classe : quand et sauf. Ils sont essentiellement...

Conditionnableest un trait qui ajoute deux méthodes à n'importe quelle classe :quandetsauf si. Ce sont essentiellement du sucre syntaxique. Ils permettent une chaîne ininterrompue d'appels de méthodes qui évitent au lecteur d'avoir à évaluer continuellement si le prochain bloc if qu'il examine fait autre chose que de continuer à travailler avec l'objet d'origine. Sa valeur est plus évidente lorsqu'elle est utilisée par les classes de constructeurs. Un excellent exemple est Eloquent.

Une implémentation standard d'une requête comportant des paramètres de filtre facultatifs ressemblerait à ceci :

?php class ContactController { public function index(Request $request) { $query = Contact::query(); $search = $request-requête('recherche'); if ($search) { $query->where('first_name', 'like', '%' . $search . '%') ->orWhere('last_name', 'like', '%' . $search . '%'); } $contacts = $query->get(); return view('contacts', ['contacts' => $contacts]); } }
Entrer en mode plein écran Quitter le mode plein écran

Il n’y a rien de mal avec la solution ci-dessus, bien sûr. Cependant, j'ai été témoin de requêtes extrêmement complexes à mon époque : lorsqu'il y a de nombreuses conditions conditionnelles, il devient très déroutant de parvenir à un résultat final concluant.

C'est là que leConditionnablele trait brille ! Il offre l'avantage de conserver tout le contexte de la requête dans une seule chaîne d'événements. Vous voyez un seul bloc de code et savez que tout est lié.

Variante à deux ou trois arguments

Il existe plusieurs « variantes » duquandméthode. La méthode fonctionne différemment en fonction du nombre d'arguments, un peu comme la surcharge de méthode du pauvre.

La variante à deux ou trois arguments est la variante la plus courante. Le premier argument est le préd...
[Courte citation de 8% de l'article original]

Loading...