Tp 5 php classes heritages traits interfaces blogpoo
Thème :
Junior
1 vues ·10/12 leçons

09. Modernisation des Requêtes : Named Arguments

PHP 8 a introduit les Named Arguments (Arguments Nommés), permettant de passer des valeurs à une fonction en spécifiant le nom du paramètre.

Transformation de findAll()

Nous avons refactorisé la récupération des données pour être plus performante et lisible.

Avant :

On utilisait fetchAll() qui chargeait tout le tableau en mémoire, puis on transformait chaque ligne.

Après (Excellence) :

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $articles[] = new self(
        id:            (int) $row['id'],
        title:         $row['title'],
        slug:          $row['slug'],
        created_at:    new DateTimeImmutable($row['created_at']),
        // ...
    );
}

Avantages :

  1. Lisibilité : Dans le constructeur, on voit exactement quelle colonne de la BDD correspond à quelle propriété. Plus besoin de compter les virgules.
  2. Ordre libre : Vous pouvez passer les paramètres dans l’ordre que vous voulez tant qu’ils sont nommés.
  3. Mémoire (Streaming) : En utilisant while avec fetch(), PHP ne garde qu’une seule ligne en mémoire à la fois. C’est crucial si vous avez des milliers d’articles.
  4. Typage (Casting) : On en profite pour forcer le type (ex: (int)), ce qui rend notre objet parfaitement typé dès sa naissance.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur 09. Modernisation des Requêtes : Named Arguments. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.