calmip / gramc3

GNU General Public License v3.0
0 stars 2 forks source link

Coding style #1

Closed vignemail1 closed 3 years ago

vignemail1 commented 3 years ago

Description

Depuis 2009 un ensemble de règles d'écriture de code PHP simplifie la reprise du code écrit et le travail collaboratif. Ces règles sont devenus les standards PSR (https://en.wikipedia.org/wiki/PHP_Standard_Recommendation ; https://www.php-fig.org/psr/), adressant différents aspects du code : autoload, indentation et alignements, logging, ...

Problème

Ne pas avoir de code ayant un style fixe produit des commit git et des soucis d'alignement dans les éditeurs (parfois le code est indenté avec des tabulations, parfois avec des espaces, les ouvertures et fermetures d'accolade ne sont pas forcement identiques dans différentes sections du code, ce qui se traduit pas de difficultés à relire le code et d'apporter des contributions productives.

Proposition de solution

L'implémentation du standard PSR-12 (version actuelle qui améliore PSR-0 et PSR-2) permettrait d'implémenter un style commun et reconnu et des outils comme PHP_codesniffer (binaires phpcs et phpcbf) permettraient de détecter et voire automatiquement corriger le code afin de garder un style PSR-12 uniforme.

De plus, le suivi des standards permet aux outils d'analyse de mieux lire le code pour différentes fonctions comme l'analyse de compatibilité avec des versions de PHP, trouver les blocs de code non factorisés, ...

Les outils d'intégration continue permettent de dérouler des scripts de tests avec différents outils (phpunit avec code coverage et des outils comme ceux de la liste ci-dessous) permettant entre autre la détection de problèmes et un éventuel reporting.

Liens web de documentation

vignemail1 commented 3 years ago

Recommendations de Symfony sur le sujet : https://symfony.com/doc/current/contributing/code/standards.html

calmip commented 3 years ago

L'utilisation de php-cs-fixer et php-stan est recommandée