SUPERCAT.DEV

Benvenut* sul mio blog

PHP

La parola chiave yield in PHP

28-09-2022

Casi d'uso di yield

Spesso mi sono trovata a fare grandi giri per arrivare poi con il tempo a scoprire che avrei potuto risparmiare linee di codice e rendere tutto anche molto piĆ¹ leggibile.

Praticamente la parola chiave yield ritorna un iterable. Ad esempio in un menu potrei fare un array con i vari elementi

public function configMenuItems(): iterable
{
   $links = [];

   if(true) {
      $links = array_merge($links, [
         MenuItem::section('Blog'),
         MenuItem::linkToCrud('Post'),
      ]);
   }

   $links = array_merge($links, [
      MenuItem::section('Impostazioni'),
      MenuItem::linkToCrud('Utente'),
   ]);

   return $links;
}

Oppure usando yield avere lo stesso risultato

public function configMenuItems(): iterable
{
   if(true) {
      yield MenuItem::section('Blog');
      yield MenuItem::linkToCrud('Post');
   }
   
   yield MenuItem::section('Impostazioni');
   yield MenuItem::linkToCrud('Utente');
}