PhpStorm, mon outil de tous les jours

Depuis mes débuts en programmation, j’ai essayé une bonne tonne d’éditeur de code. J’ai longtemps utilisé ConTEXT + FileZilla, je n’étais pas très dur à plaire à l’époque! À force de chercher, j’ai trouvé PhpStorm il y a environ un an et demi. Je n’ai plus jamais cherché un autre IDE pour le PHP depuis, et même pour les autres langage avec son grand-frère ” qui fait tout ” : IntelliJ Idea. Je ne parlerai pas vraiment de ce dernier puisqu’en pratique, c’est PhpStorm que j’utilise tous les jours.

phpstorm

PhpStorm permet, entres autres, l’auto-complétion en recherchant activement les classes/fonctions déclarés dans votre projet, la synchronisation automatique de votre fichier local et votre fichier distant à la sauvegarde (et à la sauvegarde automatique), l’historique de version des fichiers (en local), des raccourcis clavier vraiment utiles que nous verrons plus bas.

Fonctionnalités

Je ne parcourrai pas toutes les fonctionnalités de PhpStorm mais présenterai seulement celle qui me sont le plus utiles dans le quotidien,

Coder intelligemment et rapidement

Dans de gros projets, on peut difficilement connaître toutes les fonctions et documentation ou non, il est utile de pouvoir sauter directement à la déclaration de la fonction, de la classe ou de la variable. En mettant la souris par dessus un de ces trois éléments, la combinaison CMD+Click nous amène à la source, alors qu’un click sur l’épingle (non-visible sur le premier screenshot) nous amène plutôt à la documentation dans le cas d’une fonction ou d’une classe. Très utile! La fonctionnalité est disponible en PHP, en JavaScript et même en SCSS.

Avec tout ça, l’auto-complétion est évidemment indispensable. Un CMD+Espace permet d’avoir une liste des fonctions, des classes, des variables mais aussi des classes / ids CSS. C’est un gain de temps appréciable et ça permet de retrouver des classes CSS facilement quand ça fait un bout de temps qu’on a pas touché au code.

Voici quelques exemples de combinaisons CMD+Espace que je trouve fort utile:

Capture d’écran 2013-08-27 à 18.50.39     Capture d’écran 2013-08-27 à 18.59.14 
  • color: (CMD+Espace) = choix de couleur via une liste, ou choix de couleur via un sélecteur de couleur avec historique des couleurs sélectionnées
  • a(tab) = <a href=”(le curseur se retrouve ici automatiquement)”>(le curseur se retrouve ensuite ici après avoir fait Entré au href)</a>

Par exemple, pour créer une table, on peut alors faire:

  • table (tab) = <table></table>
  • thead (tab) = <table><thead></thead></table>
  • tr (tab) <table><thead><tr></tr></thead></table>
  • th (tab) <table><thead><tr><th></th></tr></thead></table>
  • CMD+D sur la ligne <th></th>
Capture d’écran 2013-08-27 à 19.05.37

Ce qui donnera en 4 ” mots “:

PHPDoc est également inclus, comme dans Eclipe, ce qui fait en sorte que tapper /** (Entré) au dessus d’une fonction / classe génère un bloc de documentation.

Il serait trop long de faire l’étendue de ce que couvre cette fonctionnalité mais encore, une fois l’apprentissage effectué, c’est un gain de temps non négligeable.

 

Synchronisation, contrôle de version, différences entre versions

Lorsque vous sauvegardez un fichier, PhpStorm vous permet de l’uploader directement sur le FTP.

On l’a tous fait au moins une fois et on le sait, écraser un fichier sur le FTP peut être fatal. Avec un VCS (Version Control System) intégré en plus d’un avertissement si le fichier distant est plus récent, ça aide.  Donc évidemment, PhpStorm vous averti en plus de vous fournir un diff des deux fichiers (local et distant, puis un mix des 2).

Notre équipe n’utilise pas de Version Control System pour l’instant, mais même si c’est sur le point de changer, les outils intégrés à PhpStorm nous ont été (et continueront d’être) très utiles, voir indispensables.

Il est également intéressant de noter qu’il est possible d’avoir un automatic upload sur un FTP distant en plus d’un VCS.

Capture d’écran 2013-08-27 à 19.47.08 

 

Analyse du code

De base, PhpStorm fait une analyse assez complète des fichiers à la recherche d’erreurs. De plus, il permet d’utiliser des services comme JSHint, JSLint ou encore CodeSniffer. Il intègre un correcteur orthographique toujours pratique, bien que toujours présent sur OSX. Évidemment, avoir ce genre d’outils présents en permanence permet de coder de façon assidue et minimise le risque d’erreur.

Il permet également de reformater le code pour l’indenter correctement, faire les retours de ligne, et beaucoup plus.

 

Console RESTful

Quand on développe un service RESTful, la fenêtre nommée ” REST Client ” de PhpStorm s’avère bien utile. Elle est complète et comme tout dans PhpStorm, très bien intégrée.

 Capture d’écran 2013-08-27 à 20.19.55 

Autres fonctionnalités utiles en vrac

  • Composer intégré (et reconnaissance des packages PHAR)
  • TODO: il suffit d’écrire un des éléments suivants pour que PhpStorm l’affiche dans la fenêtre ” TODO ”
    • // @todo: Ajouter une vérification xyz
    • // FIXME: Le retour est invalide lorsque l’entrée est …
  • Possiblité de commencer avec une base de projet avec les choix suivants: Composer, App Engine, HTML5 Boilerplate, Twitter Bootstrap, Foundation. PhpStorm permet de sélectionner la version désirée ou le master. Bien agréable!
  • Génération de code. Par exemple, en tappant ” html ” puis CMD+J, on peut sélectionner ” HTML:5 ” ce qui nous donne la base d’une page html5, commençant par <!doctype html><html lang=”en-US(le curseur se retrouve ici)”>…

Les moins

Bien que j’adore PhpStorm, une fonctionnalité manque: celle d’éditer un fichier distant via FTP sans pour autant qu’il soit présent localement dans un projet. Par exemple, lorsqu’un collègue me demande un coup de main sur un fichier, je dois ouvrir un logiciel FTP, me connecter sur le FTP que j’ai déjà enregistré dans PhpStorm (donc aller retrouver le username, le password), cliquer pour éditer le fichier et enfin le voilà ouvert dans PhpStorm (sans auto-complétion, etc). Il serait bien agréable d’avoir cette fonctionnalité (de base selon moi!) présente dans PhpStorm. Pourtant le Browser Remote Host est déjà présent… mais double cliquer sur le fichier distant ouvre celui local ou l’ouvre en lecture seule! Une issue est d’ailleurs ouverte sur le bug report… depuis plusieurs années. Rien n’a changé. Bien dommage de voir ça!

Certaines fonctionnalités pourraient être repensées pour être plus simple.

Conclusion

Bref, dans mon utilisation quotidienne, j’adore PhpStorm (pour le PHP!). Pour le Python, j’utilise IntelliJ Idea.

J’en profite également pour dire que ces deux produits sont payants (PhpStorm coûte une centaine de dollar pour une licence personnelle).

Et vous, quel IDE utilisez-vous? Avez-vous essayé PhpStorm?