Created
September 5, 2013 12:16
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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