Mes outils

By | 5 novembre 2013

Boite à outilsCet article est un peu particulier, il va me servir à la fois pour référencer les outils que j’utilise mais aussi ceux sur lesquels je compte me pencher. Cette liste d’outils ne sera donc jamais exhaustive, étant donné que les outils que je vais présenter seront uniquement ceux que je veux. (Et oui c’est moi le patron !).

Par contre je suis ouvert à vos propositions, ou à vos conseils !

Je vais, pour chacun des outils leur donner une mini description, un exemple d’utilisation (si possible) et le lien vers le site officiel.

Il n’y aura pas de thématique particulière, je pourrais aussi bien présenter un framework PHP,  un logiciel de monitoring ou des sites dont je me sers de manière régulière.

maj 04/01/2014: Ajout de Kcachegrind / XHProf

PHP

PHP Code sniffer

Code sniffer est un script permettant d’analyser du code PHP afin de vérifier que ce dernier respecte un standard de développement tel que PEAR, Zend ou PSR-2.

Exemple d’utilisation:

phpcs -p --standard=PSR2 --extensions=php code/Source

http://pear.php.net/package/PHP_CodeSniffer

PHP Code sniffer fixer

PHP CS Fixer est un outil développé et maintenu par SensioLabs. Cet outil permet de corriger le code ne respectant pas les standards PSR-1 et PSR-2.

Exemple d’utilisation:

php-cs-fixer fix --level=all code/Source

http://cs.sensiolabs.org

PHP Depend

PHP Depend permet de donner une métrique sur la complexité d’un code source en s’appuyant sur une quarantaine de règles regroupées par granularité (projets, package, fichier, classe et méthode). Pour connaître l’ensemble de ces règles je vous redirige vers leur documentation http://pdepend.org/documentation/software-metrics

Exemple d’utilisation:

pdepend --jdepend-chart=test.svg code/Source

http://pdepend.org

PHP Mess Detector

PHPMD est un dérivé de PHP Depend. Au même titre que PHP Depend il fait de l’analyse de code en s’appuyant sur différentes règles telles que le nombre de lignes d’une méthode, le nombre de méthodes d’une classe,  ou encore les variables/méthodes privée non utilisées. Vous pouvez bien évidement définir vos propres règles.

Exemple d’utilisation:

phpmd code/Source text codesize,unusedcode,naming

http://phpmd.org

PHP CPD

PHP Copy Paste Detector, est un outil comme son nom l’indique permettant de détecter la duplication de code.

Exemple d’utilisation:

phpcpd code/Source

https://github.com/sebastianbergmann/phpcpd

PHP Loc

PHP Loc permet d’avoir une vision global sur la taille d’un projet, ainsi que sa structure. Les informations extraites sont par exemples le nombre de lignes de codes commentées, le nombre de méthodes statiques, le nombre de fichiers …

Exemple d’utilisation:

phploc code/Source

https://github.com/sebastianbergmann/phploc

APIGEN / PHP Documentor

Ces 2 outils permettent la génération de documentation depuis le source PHP. J’ai toujours eu un penchant pour  APIGen, car PhpDOC était dépassé à l’époque. Mais l’écriture de cet article m’a permit de découvrir qu’ils avaient sortie une nouvelle version qui m’a l’air à la hauteur de APIGen et sur laquelle je vais me pencher.

Exemple APIGen

apigen --source code/Source --destination ma/Doc

Exemple PHPDoc

phpdoc -d code/Source -t ma/Doc

http://apigen.org

http://www.phpdoc.org

Atoum / PHPUnit

Atoum et PHPUnit sont des outils permettant de mettre en place des tests unitaires. Alors tout comme APIGen et PHPDoc, j’ai mon petit préféré qui est Atoum, pour plusieurs raisons. Premièrement, le créateur est français, @mageekguy (un peu de fierté :p) ! Bon ce n’est évidement pas la raison pour laquelle je le préfère, Atoum était/est tout simplement en avance sur PHPUnit à l’époque où j’ai commencé à écrire des tests et surtout plus simple à utiliser et très bien documenté.

http://phpunit.de/manual/current/fr

http://docs.atoum.org/fr

Phing

Bon jusqu’à maintenant j’ai présenté des outils permettant d’améliorer, contrôler la qualité de votre code, tout ces outils ont leurs propres fonctionnement. Phing permet d’harmoniser leur utilisation à travers un système de tâche définit dans un fichier de configuration XML.

http://www.phing.info

KCachegrind / XHProf

Ces 2 outils permettent de faire du profilage de code PHP. Ils permettent d’identifier rapidement le goulot d’étranglement d’un script, mais aussi d’appréhender plus facilement un nouveau projet. Dernièrement, j’ai dû me mettre au développement de module Magento, et je dois avouer que XhProf m’a été d’une aide précieuse pour comprendre comment fonctionne le coeur de Magento. Il n’y a encore pas longtemps j’utilisais essentiellement KCachegrind, mais j’ai été séduit par la simplicité d’utilisation et l’interface de XhProf.

http://xhprof.io/

http://kcachegrind.sourceforge.net/html/Home.html

Divers

TLDR Legal

Ce site recense toutes les licences open source avec un résumé de ce qu’on peut faire ou pas concernant la license.

http://www.tldrlegal.com