Cet article propose un workflow GitHub Actions idéal pour les applications Symfony. L'objectif principal est de garantir que le code et les dépendances livrés fonctionnent dans un environnement similaire à la production. Il met en avant un workflow de CI de base axé sur les tests, le linting, l'analyse statique et la sécurité des dépendances.
Le workflow présenté inclut des étapes essentielles pour une application Symfony typique. Il couvre la configuration de PHP, l'installation des dépendances via Composer avec mise en cache, la création et la migration de la base de données de test (PostgreSQL ou MySQL), ainsi que la validation de la cohérence du schéma de base de données avec le mapping Doctrine. Ce workflow est conçu pour s'exécuter lors des pull requests et des commits sur la branche principale, assurant une intégration continue fiable.
Le workflow CI utilise un environnement de test avec une version de PHP correspondant à celle de production, ainsi qu'un service de base de données (PostgreSQL ou MySQL) pour simuler un environnement réel. Il inclut également la gestion des étapes de validation de la base de données pour détecter et afficher les divergences entre le schéma attendu et celui généré par les migrations.
Résumé pour Shaarli:
Workflow GitHub Actions recommandé pour les applications Symfony, axé sur les tests, l'analyse et la validation dans un environnement proche de la production. Il automatise l'installation des dépendances, la gestion de la base de données de test et la vérification de la cohérence du schéma, assurant la fiabilité du code avant le déploiement.
Le nouveau command symfony lsp:check résout un problème courant de typographie dans les noms de routes Symfony que les outils d'analyse statique comme PHPStan ne peuvent pas détecter. Ces erreurs, souvent des fautes de frappe minimes, peuvent passer inaperçues lors des revues de code ou des tests automatisés, menant à des bugs en production. Le command analyse les routes, les templates, les traductions et la configuration pour identifier ces erreurs spécifiques à Symfony.
Le command symfony lsp:check est une version autonome des diagnostics déjà présents dans les extensions de langage Symfony pour les éditeurs. Il fonctionne en démarrant l'application dans l'environnement sélectionné pour analyser la configuration et les routes réelles, offrant ainsi une détection précise des erreurs. Il couvre un large éventail de problèmes, incluant les routes inexistantes, les templates manquants, les clés de traduction erronées et les configurations invalides, avec la possibilité de basculer vers une analyse statique si l'exécution du code n'est pas possible en CI.
PHP Satan est un site humoristique et pédagogique dédié à PHPStan, un outil d'analyse statique pour PHP souvent surnommé ainsi par ses utilisateurs. Le site guide les développeurs à travers les défis de l'analyse de code, en commençant par les bases de l'installation et de la configuration, jusqu'à des concepts plus avancés comme la gestion des erreurs de type et l'optimisation des performances.
L'idée principale est d'aider les développeurs à comprendre et à corriger les erreurs détectées par PHPStan, notamment celles liées aux types de données. Le site explique le système de niveaux de PHPStan (de 0 à 10), chaque niveau étant plus strict que le précédent, et propose des solutions pour résoudre les erreurs courantes, comme l'utilisation de type hints ou le narrowing de types. Des conseils pratiques, comme l'augmentation de la mémoire allouée ou l'utilisation de flags en ligne de commande, sont également fournis pour optimiser l'analyse.
Création d'une règle custom pour PHPStan
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Un outil d'analyse statique de code PHP... d'après l'auteur cela permettrait de réduire la nécessité d'écrire des tests unitaires triviaux (style getters et setters) juste pour vérifier qu'il n'y ait pas d'erreurs de syntaxe.