Dev back

Dev back

Using RuleErrorBuilder to enrich reported errors in custom rules

L'article explique comment utiliser RuleErrorBuilder pour enrichir les erreurs signalées lors de la création de règles personnalisées dans PHPStan. Il décrit les fonctionnalités de RuleErrorBuilder, y compris la possibilité de définir des lignes de fichier différentes, d'ajouter des identifiants d'erreur, et de joindre des métadonnées aux erreurs. Il est recommandé de migrer les chaînes de caractères simples vers RuleErrorBuilder afin de profiter des nouvelles fonctionnalités de PHPStan 1.11.

Dev back

A guide to call-site generic variance

Cet article présente la variance générique au niveau de l'appel, une fonctionnalité de PHPStan qui permet de gérer la variance des types de manière plus flexible sans perturber la déclaration des interfaces. Il explique la variance déclarative, ainsi que les notions de covariance et contravariance, et présente des projections de type, y compris les projections d'étoiles, qui permettent de travailler avec des collections de types variés.

Dev back

Enhancements in Handling Parameters Passed by Reference in PHPStan 1.10.60

La version 1.10.60 de PHPStan introduit des améliorations dans la gestion des paramètres passés par référence. Elle permet de vérifier le type des arguments passés par référence, ce qui améliore la validation des types et la prise en charge des annotations PHPDoc. Cela vise à renforcer la sécurité et la robustesse du code analysé par PHPStan, tout en préservant la compatibilité avec les versions antérieures. Ces changements seront également intégrés dans la prochaine version majeure, PHPStan 2.0.

Dev back

Debugging PHPStan Performance: Identify Slow Files

Cet article traite des méthodes pour identifier les fichiers qui ralentissent l'analyse de PHPStan dans un projet. Il suggère d'activer le mode Bleeding Edge pour améliorer la vitesse et d'utiliser des options en ligne de commande pour afficher le temps et la mémoire consommée par chaque fichier. Les fichiers les plus lents peuvent ensuite être analysés pour déterminer s'il est judicieux de les exclure de l'analyse ou de signaler des bogues pour améliorer les performances de PHPStan.

Dev back

PHPStan Reports Different Errors Locally & in CI. What Should I Do?

Cet article fournit des étapes à suivre pour résoudre les différences de rapports d'erreurs de PHPStan entre un environnement local et un système d'intégration continue (CI). Il aborde des vérifications essentielles comme la version de PHP utilisée, l'installation de PHPStan via Composer et la nécessité de s'assurer que la même configuration est utilisée dans les deux environnements. Des conseils pratiques sont donnés pour éviter les conflits de définitions de classes et pour corriger les problèmes d'autoloading. En cas de persistance des problèmes, il est recommandé d'ouvrir une discussion sur GitHub pour obtenir de l'aide.

Dev back

PHPStan 1.12: Road to PHPStan 2.0

La version 1.12 de PHPStan, un outil d'analyse statique pour PHP, se dirige vers la version 2.0 avec de nouvelles fonctionnalités, notamment une inférence de type précise pour les expressions régulières et des améliorations de vérifications sur les types PHPDoc. Ces ajouts, disponibles via le réglage 'Bleeding Edge', sont conçus pour préparer les utilisateurs à la future version tout en corrigeant et en affinant les erreurs dans les codebases actuelles.

Dev back

Smooth Upgrade to Nette 3.1 in Diffs

L'article traite de la mise à jour vers Nette 3.1, détaillant les changements significatifs, comme l'augmentation de la version minimale de PHP à 7.2 et la perte de préfixes sur les interfaces. L'auteur souligne l'importance de cette mise à jour en raison d'une vulnérabilité de sécurité dans la version 3.0.x et encourage les développeurs à utiliser Rector pour faciliter le processus d'upgrade. Plusieurs points de précaution sont mentionnés pour éviter des conflits de noms et d'autres problèmes lors de la migration.

Dev back

How to Instantly Refactor Symfony Action Injects to Constructor Injection

Cet article explique comment refactoriser des injections d'action Symfony en injections de constructeur, soulignant que les injections d'action peuvent mener à un code hérité difficile à maintenir. Il propose une méthode de refactorisation instantanée à l'aide de l'outil Rector, permettant de simplifier le processus pour les développeurs en automatisant la refactorisation des contrôleurs, et de gagner du temps tout en réduisant la dette technique.

Dev back

How to Instantly Decouple Symfony Doctrine Repository Inheritance to Clean Composition

Cet article explique comment décomposer les héritages de répositories Doctrine dans Symfony pour adopter une conception propre basée sur la composition plutôt que sur l'héritage. Il aborde le concept de refactorisation à l'aide de l'outil Rector, permettant de transformer rapidement l'héritage en composition à travers quelques étapes simples, rendant ainsi le code plus maintenable. L'article invite à une meilleure gestion des répositories dans les projets Symfony en appliquant les principes SOLID.

Dev back

Legacy Refactoring made Easy with Static Reflection

Cet article présente les nouvelles fonctionnalités de Static Reflection dans Rector, permettant une analyse de code plus efficace sans nécessiter l'exécution de fichiers. Auparavant, chaque fichier de test devait être inclus, ce qui causait des conflits. La version 0.10 de Rector améliore la gestion des tests en les rendant indépendants et en simplifiant l'intégration. Cela facilite également la contribution à la communauté Rector.