• Technique
PHP Tour 2017 à Nantes, deuxième jour de conférence !

  • Technique
PHP Tour 2017 à Nantes, retour sur le premier jour de la conférence...

#PHPTour, retour sur le premier jour de la conférence.

  • Technique
"php-crashers" : exemples de scripts qui déclenche une segmentation fault en PHP

Erreur de segmentation, qu'est-ce que c'est et dans quels cas sont elles déclenchées en PHP ? Un dépôt Github présente quelques exemples détaillés...

  • Développement
  • Technique
PHP Coding Standard Fixer ou comment nettoyer les namespaces inutiles en PHP ?

Aujourd'hui il existe des outils pour aider à produire un code propre et respectant une mise en forme normée, pourquoi ne pas essayer !

  • Technique
Désactivation de certaines fonctionnalités des navigateurs sur les sites non "sécurisés"

  • Serveur
  • Technique
Let’s Encrypt : une nouvelle autorité de certification libre, automatisée et ouverte

  • Développement
  • Technique
Comment cloner un objet en JavaScript

Toute assignation créé une référence et pas une copie. Ce comportement est standard dans la programmation mais en JavaScript on se perd facilement...

  • Serveur
  • Technique
Comment en finir avec l'édition du fichier hosts ?

Comment configurer un serveur DNS simple dans un environnement de développement ? En utilisant dnsmasq, un outil efficace qui permet de s'affranchir de l'édition du fichier hosts.

  • Développement
  • Technique
PHP 7: Installation sur une distribution Ubuntu Server

Plus d'excuse maintenant pour ne pas installer et utiliser PHP 7 sur votre serveur Ubuntu. Grâce à ce guide, vous pouvez suivre une procédure fiable et officielle sans passer par une compilation personnalisée.

  • Développement
  • Technique
Symfony, Composer et la configuration `platform`

Une erreur du type `overriden by "config.platform.php"` en installant vos dépendances composer ? Venez comprendre la configuration qui en est la cause et comment la dompter !

  • Développement
  • Technique
  • Tests unitaires
Atoum: Comment automatiser l'utilisation du fichier de `bootstrap` ?

J'ai utilisé atoum sur un projet récemment. Il m'a permis de découvrir une autre approche des tests unitaires, plus simple et efficace

  • Technique
On a testé Firefox Developer Edition !

Mozilla vient de présenter sa dernière nouveauté, Firefox Developer Edition. C'est un outil puissant qui intègre les dernières innovations pour aider les développeurs web au quotidien.

  • Technique
Contrôler l'installation des mises à jour de Wordpress

Il est intéressant de pouvoir limiter l'installation des mises à jour à certains utilisateurs pour contrôler les problèmes techniques qui peuvent en découler.

  • Technique
L'Ipad et les problèmes de redimensionnement des images hors viewport

L'Ipad et safari sur iOS n'autorisent pas par défaut l'application d'une image de fond qui dépasse du viewport, voici quelques astuces pour contourner ce problème.

  • Design
Prendre les bonnes décisions pour une interface plus efficace

Vous vous demandez pourquoi certaines interfaces web plaisent aux internautes et d’autres pas ?

  • Stratégie
Comment rédiger un brief efficace pour obtenir ce que vous voulez !

Vous souhaitez que votre projet aboutisse à la réalisation que vous imaginez ?

Mots Clés

  • Développement
  • Technique

25 août 2016 par Stéphane Hulard

PHP Coding Standard Fixer ou comment nettoyer les namespaces inutiles en PHP ?

J’ai récemment intégré dans mon workflow de développement l’outil PHP Coding Standard Fixer pour m’aider à contrôler la qualité du code produit.

Cet outil a pour objectif de valider et corriger les fichiers PHP en s’appuyant sur des règles définies. Il est utilisé sur des projets comme Symfony et vient remplacer de plus en plus son prédécesseur PHP Code Sniffer dans les parages depuis bien longtemps.
Comme il est livré avec une énorme liste de règles prédéfinie et qu’il ne s’appuie par sur un format de configuration PHP simple et lisible, il gagne de plus en plus sa place dans le coeur des développeurs.

De mon côté j’aime utiliser PHP Code Sniffer car j’y suis habitué et que je reste pour le moment sur des guides de style standard PSR-1 et PSR-2. Malheureusement il ne fait pas tout et son descendant est assez puissant pour du nettoyage ponctuel.

Installation de php-cs-fixer

Il existe 4 façons d’installer cet outil sur un poste de travail…

Avec le fichier Phar compilé

Il est généré sur les serveurs de SensioLabs. C’est la méthode d’installation la plus portable et légère disponible.

curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
chmod a+x php-cs-fixer
mv php-cs-fixer /usr/local/bin/php-cs-fixer

Avec Composer

composer global require friendsofphp/php-cs-fixer

Attention, avec cette méthode il faut vous assurer que le répertoire bin global de composer est bien dans votre variable d’environnement $PATH.
Si ce n’est pas le cas, il suffit d’ajouter :

export PATH="$PATH:$HOME/.composer/vendor/bin"

Avec Homebrew

Disponible uniquement pour les utilisateur de macOS, il s’agit d’un gestionnaire de dépendance très pratique. Il faut d’abord installer le paquet homebrew-php puis il suffit de lancer la commande :

brew install homebrew/php/php-cs-fixer

Nettoyage du code source

Normalement, un exécutable php-cs-fixer est maintenant disponible dans votre terminal. Pour nettoyer un fichier/dossier content du code source, il suffit d’utiliser la commande :

php-cs-fixer fix --fixers=... [chemin à nettoyer]

La liste des « fixers » est disponible sur le Github et contient plus de 120 règles à appliquer. Celle qui m’intéresse particulièrement est unused_use, qui va analyser les déclarations « use ... » au début des fichiers et supprimés ceux qui sont inutilisés dans ce même fichier.
Exemple pour nettoyer le répertoire src :

php-cs-fixer fix --fixers=unused_use src

Il existe aussi des groupes de règles par défaut (psr0, psr1, psr2, symfony) qui sont utilisables avec l’argument --level, par exemple :

php-cs-fixer fix --level=symfony src

Avec ce genre d’outil, il devient assez facile de standardiser la forme du code produit pour éviter les incohérences et permettre une lisibilité exemplaire. C’est vraiment conseillé dans les projets impliquant de multiple développeur car ça permet d’écrire un code propre et solide, dans sa forme au moins 🙂

Partager cet article


Soumettre un commentaire

Vous avez décidé de laiser un commentaire. C'est fantastique !
Votre adresse e-mail ne sera pas publiée, merci d'être passé !

(*) Champs obligatoires Envoyer

Votre commentaire a été soumis à validation