Notre blog

Les bons outils pour développer en PHP

par Maxime, Développeur Symfony à l’Agence Dn’D
DND-Developpement-PHP
Voici différents outils et tricks pour simplifier les tâches des développeurs PHP au quotidien. Il s’agit bien sûr d’une liste non exhaustive.

NB : Les logiciels et commandes cités dans cet article sont issus d’un environnement sous Ubuntu.

SHELL WHAT ? TERMINATOR

Terminator est un terminal virtuel très intéressant. Il permet d’ouvrir et de synchroniser plusieurs fenêtres dans un unique onglet. Par exemple, il est possible d’être connecté en SSH, de monitorer et d’être en local en même temps.
dnd-terminator
Quelques raccourcis sur Terminator :

  • Séparer verticalement : Ctrl+Shift+E
  • Séparer horizontalement : Ctrl+Shift+0
  • Nouvel onglet : Ctrl+Shift+T
  • Naviguer entre les onglets : Ctrl+Page haut/Page bas
  • Naviguer entre les fenêtres : Ctrl+Tab / Ctrl+Shift+Tab
  • Fenêtre en plein écran : Ctrl+Shift+X

BASH TO ZSH

Couplé au Shell et à Oh My Zsh, l’interpréteur de commande Zsh peut remplacer Bash. Il est personnalisable et propose un large éventail de possibilités, comme par exemple l’intégration de Git qui offre une meilleure visibilité concernant les branches. Il apporte également des plugins qui fournissent des Alias.

Exemples d’Alias pour Git/Symfony :

Alias Commandes
g git
ga git add
gaa git add -all
gcmsg git commit -m
gco git checkout
sf php app/console
sfcl php app/console cache:clear
sfroute php app/console router:debug
sfgb php app/console generate:bundle

GIT

Quelques commandes utiles sur Git :

git commit –amend #permet de modifier le dernier commit
git branch -m #permet de renommer la branche courante
git rebase -i #permet de modifier, renommer, supprimer, rassembler des commit
https://git-scm.com/docs/git rebase#_interactive_mode
git pull –rebase #permet de pull en réordonnant les commits

De nombreuses configurations d’alias sont également disponibles sur internet et plus particulièrement sur Github.

La gestion des conflits peut se réaliser grâce à Meld. Et Giggle permet de visualiser les branches. Ces deux outils sont Open Source, indépendants de PhpStorm et nécessitent moins de ressources que ce dernier.
De même il existe d’autres GUI pour gérer vos GIT, tel que GitKraken ou SourceTree mais ce dernier n’est malheureusement pas disponible sous linux.

Xdebug ou var_dump ?

Il existe différents outils pour debuguer, notamment Xdebug qui est intéressant lorsqu’il s’agit d’entrer dans les couches basses du code. En revanche, il utilise beaucoup de mémoire, surtout pour Composer. Il est donc possible de le réactiver seulement en cas de besoin grâce à la création de deux Alias :
alias xdebug-on=’sudo phpenmod -s cli xdebug’
alias xdebug-off=’sudo phpdismod -s cli xdebug’

Puis sur l’interface en ligne de commande (CLI), au lancement de Xdebug :
XDEBUG_CONFIG= »remote_enable=1″ php app/console ma:commande

Ou encore une fois, il est possible de créer un alias :
alias sfxd=’XDEBUG_CONFIG= »remote_enable=1″ php app/console’

Astuce : pour voir les points d’arrêt à un état précis de la variable, il est possible de supprimer tous les points d’arrêt et de faire une condition avec le point en question, suivis des autres si nécessaire :
DND-Composer (1)

Astuce : il est possible de mettre plusieurs variables dans les var_dump(). Par exemple : var_dump(__METHOD__, $var1, $var2);die;

NB : il en est de même pour les isset :
if (isset($foo) && isset($bar)) revient à if (isset($foo, $bar))

Le test avant les tests :
Il est possible de tester les portions de code, et notamment les algorithmes, sur une Sandbox PHP.

Composer

L’utilisation de Composer est une action courante pour le développement. Il existe différents Plugins comme Prestissimo qui permettent de télécharger les dépendances en asynchrone.
Ce dernier sera d’ailleurs prochainement intégré nativement à Composer. Il existe également Composer License, une commande qui liste les paquets installés et indique leur version et leur licence.

Afin de maîtriser son développement, il existe des outils tels que cs-fixer, phpmetric et bien d’autres. Ces outils sont généralement installés en global sur Composer. Pour avoir plus facilement la main dessus, il suffit d’exporter le dossier bin de composer dans une variable d’environnement : export PATH= »$PATH:$HOME/.composer/vendor/bin ».

Gestionnaire de base de données

Adminer est une alternative à phpMyAdmin qui permet la gestion de différents types de bases de données en un seul fichier PHP. Cependant, il est difficile, voire impossible de se connecter via SSH.
Il existe alors Dbeaver qui peut gérer tous les types de bases de données, dont NoSQL qui est Open Source. Ce client bénéficie :

 
NB : la version enterprise permet de bénéficier de bases de données de type NoSQL. Cette version est aussi gratuite, mais pas open source.

Mail

Sous un environnement Unix, il est habituel d’utiliser Postfix comme serveur de messagerie électronique. Mais ce dernier n’est pas toujours simple à configurer.

MailCatcher est un logiciel développé en Ruby écoutant le port 1025, simple d’installation et de configuration, compatible avec PHP, Symfony, etc, et qui peut être intégré dans Vagrant via PuPHPet. L’aspect négatif réside dans l’impossibilité de faire suivre les mails reçus.

MailDev est un logiciel équivalent, fait en NodeJS. Il propose une interface propre ainsi que la possibilité de rediriger les mails vers un système de messagerie comme Gmail, par exemple.

Ces deux logiciels éviteront d’envoyer accidentellement des mails de test aux clients, ces derniers étant récupérés sur le local.

Veille

Voici quelques événements à suivre :

 
6 comptes Twitter :

Youtube
La chaîne Youtube de l’AFUP PHP

Github
Fabien Potencier
Kevin Dunglas

Conclusion

N’hésitez pas à nous soumettre vos astuces et tricks pour nous permettre d’enrichir cet article !

Restez curieux !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *