Génériques PHP dans Laravel 11

DEV - 23/10
Si vous êtes un créateur d'applications Web avec Laravel et que vous utilisez PHPStan pour le code statique...

Si vous êtes un créateur d'applications Web avec Laravel et que vous utilisez PHPStan pour l'analyse de code statique, vous commencerez à voir de nouvelles erreurs lors de la mise à niveau vers Laravel 11.x.

Dans une nouvelle installation de Laravel avec PHPStan, la première fois./fournisseur/bin/phpstanl'erreur suivante est générée :

------ -------------------------------------------- --------------------------------------- Ligne app\Models\User.php --- --- ----------------------------------------------- ------------------------------------ 13 La classe App\Models\User utilise le trait générique Illuminate\Database\ Eloquent\Factories\HasFactory mais ne précise pas ses types : TFactory ------ ------------------------------- -------------------------------------------------- --
Entrer en mode plein écran Quitter le mode plein écran

Alors qu’est-ce qui a changé ? Dans Laravel 11, leAFactorytrait a maintenant un PHPDoc avec le@modèletag qui est l'une des balises génériques réservées. Comme vous l'avez peut-être déjà deviné, les génériques sont utilisés dans de nombreuses parties du framework.

/** * @template TFactory de \Illuminate\Database\Eloquent\Factories\Factory */ trait HasFactory { ... }
Entrer en mode plein écran Quitter le mode plein écran

Bien que cela ne soit pas recommandé, cette catégorie d'erreurs peut être ignorée en ajoutant simplement ces lignes de code à votrephpstan.neondéposer:

paramètres : ignoreErrors : - identifiant : MissingType.generics
Entrer en mode plein écran Quitter le mode plein écran

Mais les génériques ne sont pas si difficiles à comprendre, alors commençons !

Que sont les génériques ?

Les génériques en programmation font référence à une fonctionnalité qui vous permet d'écrire du code pouvant fonctionner avec plusieurs types de données. Au lieu d'écrire du code séparé pour chaque type de données, vous pouvez écrire un seul morceau de code générique qui peut fonctionner sur différents types tout en maintenant la sécurité des types, contrairement à l'utilisation de...
[Courte citation de 8% de l'article original]

Loading...