Skip to content

Instantly share code, notes, and snippets.

@matyo91
Created September 5, 2013 12:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matyo91/6449367 to your computer and use it in GitHub Desktop.
Save matyo91/6449367 to your computer and use it in GitHub Desktop.
Voici des outils à installer sur son poste, adaptés ici au développement sur Symfony2, pour pouvoir vérifier la qualité de son code.
Les règles de codage sont un ensemble de règles à suivre pour uniformiser les pratiques de développement des projets, diffuser les bonnes pratiques de développement et éviter les erreurs de développement "classiques" au sein d'un groupe de développeurs.
Dans cet article, nous allons commenter quelques outils à installer sur son poste, adaptés ici au développement sur Symfony2, pour pouvoir vérifier la qualité de son code.
[PHP Mess Detector](http://phpmd.org/), [PHP Code Sniffer](http://www.squizlabs.com/php-codesniffer) et [PHP Coding Standards Fixer](http://cs.sensiolabs.org/) sont là pour vous aider.
# PHP Mess Detector
PHP Mess Detector applique certaines règles pour vérifier la qualité de votre code. La liste des règles peut se trouver ici.
## Installation :
$ sudo pear channel-discover pear.phpmd.org
$ sudo pear install --alldeps phpmd/PHP_PMD
## Utilisation :
Les règles peuvent être contenues dans un fichier XML, dont voici un exemple :
<!-- Fichier phpmd.xml -->
<?xml version="1.0"?>
<ruleset name="PHPMD ACSEO RULESET"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Exemple de règles</description>
<rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
<rule ref="rulesets/codesize.xml/NPathComplexity" />
<rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />
<rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
<rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
<rule ref="rulesets/design.xml/EvalExpression" />
<rule ref="rulesets/design.xml/ExitExpression" />
<rule ref="rulesets/design.xml/GotoStatement" />
<rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />
<rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />
<rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
<rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
</ruleset>
Pour générer le rapport de PHPMD avec ce jeu de règles :
$ cd /path/to/myproject
# lance phpmd sur le répertoire src avec les règles contenues dans phpmd.xml et génère le rapport myrepport.html au format HTML
$ phpmd src html /path/to/phpmd.xml > /path/to/myreport.html
# PHP Code Sniffer
PHP Code Sniffer applique certaines règles pour vérifier la qualité de votre code.
## Installation
$ sudo pear channel-discover pear.pdepend.org
$ sudo pear install --alldeps phpmd/PHP_PMD
$ sudo pear install PHP_CodeSniffer
# Configutation de CodeSniffer pour Symfony2
# Localiser le répertoire d'installation de PEAR
$ pear config-show | grep php_dir
$ cd /path/to/pear/PHP/CodeSniffer/Standards
$ git clone git://github.com/opensky/Symfony2-coding-standard.git Symfony2
$ phpcs --config-set default_standard Symfony2
## Utilisation
PHP Code Sniffer a été configuré pour suivre le standard de Symfony2. Pour tester un fichier :
$ phpcs /path/to/myrpoject/src/FunkyBundle/Controller/FunkyController.php
# PHP Coding Standard Fixer
Mis à disposition par Sensio, cet outil permet de fixer un certains nombres de standards de développement pour vos fichiers sources.
## Installation
$ sudo wget http://cs.sensiolabs.org/get/php-cs-fixer.phar -O /usr/local/bin/php-cs-fixer
# Donner ensuite les droits d'exécution à php-cs-fixer
$ sudo chmod a+x /usr/local/bin/php-cs-fixer
## Utilisation
Voici un exemple de commandes à utiliser. La liste des règles et des fixers disponibles peut se trouver ici
$ php-cs-fixer fix /path/to/dir --config=sf21
# PHP Doc Fill
Permet compléter facilement la documentation du code php
http://cnedelcu.net/phpdocfill/
# Plus d'outils
D'autres outils sont mis à disposition pour faire de l'assurance qualité de code :
http://phpqatools.org/
$ pear config-set auto_discover 1
$ pear install pear.phpqatools.org/phpqatools
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment