07/01/2014
Chaque développeur écrit son code avec ses propres habitudes d’indentation, de nommage, etc… ce qui nuit a la lisibilité du code par d’autres personens ayant d’autres habitudes.
La solution est d’adopter une norme commune. Peu importe la norme, du moment qu’elle est adoptée par tous.
Les normes PSR
Le PHP Framework Interop Group publie des normes reprises par beaucoup de projets. C’est par exemple le cas des Standards Symfony qui suivent la norme PSR-2.
Pas de long discours, mais un petit exemple tiré du site:
<?php
namespace Vendor\Package;
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
Controller son code
PHP_CodeSniffer est disponible via composer:
$ php composer.phar require --dev \
squizlabs/php_codesniffer:"*@stable"
Pour valider le code d’une appli symfony contre la norme PSR-2:
$ ./bin/phpcs -p --standard=PSR2 src/
Pour ajouter d’autres vérifications, notamment la présence des DocBlocks pour phpDocumentor:
$ ./bin/phpcs -p src/
Corriger son code
php-cs-fixer va corriger la plupart des fautes de style du code.
Pour le télécharger:
$ wget http://cs.sensiolabs.org/get/php-cs-fixer.phar
Pour mettre à jour php-cs-fixer:
$ php php-cs-fixer.phar self-update
Pour corriger le code d’une appli symfony pour suivre PSR-2 plus quelques ajouts comme la suppression des use inutiles par exemple:
$ php php-cs-fixer.phar fix src/
Pour corriger le code d’une appli symfony uniquement pour PSR-2:
$ php php-cs-fixer.phar fix src/ --level=psr2