Skip to content

Migrer PHPStan vers une dépendance Composer et mettre à jour la CI/CD #3106

@kwizer15

Description

@kwizer15

Votre demande de fonctionnalité est-elle liée à un problème ? Veuillez le décrire.
Actuellement, PHPStan est utilisé via le téléchargement du fichier .phar, ce qui pose plusieurs problèmes :

  • Gestion des versions incohérente et difficile à maintenir
  • Téléchargements répétés dans les GitHub Actions (perte de temps et bande passante)
  • Pas de gestion des dépendances PHPStan (extensions, règles spécifiques)
  • Difficultés pour les développeurs à reproduire localement l'environnement exact
  • Mise à jour manuelle nécessaire du .phar

Décrivez la solution que vous souhaitez
Je propose de migrer PHPStan vers une gestion moderne via Composer :

  1. Ajout de PHPStan dans composer.json :

    • Ajouter phpstan/phpstan dans les dépendances de développement
    • Ajouter les extensions PHPStan pertinentes (phpstan/extension-installer, etc.)
    • Définir une version spécifique pour garantir la reproductibilité
  2. Mise à jour des GitHub Actions :

    • Supprimer les étapes de téléchargement du .phar
    • Utiliser composer install pour installer PHPStan
    • Exécuter PHPStan via vendor/bin/phpstan
    • Optimiser le cache Composer pour accélérer les builds
  3. Mise à jour de la documentation :

    • Documenter la nouvelle procédure d'installation locale
    • Mettre à jour les instructions pour les développeurs
    • Expliquer comment mettre à jour PHPStan via Composer

Contexte supplémentaire
Cette migration vers Composer permettra :

  • Une meilleure intégration avec l'écosystème PHP moderne
  • Une gestion unifiée des dépendances de développement
  • Des builds plus rapides et plus fiables
  • Une meilleure expérience développeur pour les contributions
  • La possibilité d'utiliser facilement des extensions PHPStan spécialisées

Cette approche est maintenant considérée comme la pratique standard pour l'intégration de PHPStan dans les projets PHP modernes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions