Back to blog

Mise à jour PhpStorm 7

November 1, 2013 - Posted in Coding , Français Posted by:

Tags: , , , , , ,

Cette nouvelle version est déjà disponible au téléchargement.

PhpStorm 7

Quoi de neuf dans la version 7 de PHP Storm ?

La nouvelle version de PHP Storm vient d’être mise en ligne. Cette septième version disponible pour Windows, Mac et Linux apporte son lot de changements : PHP 5.5, Vagrant, console SSH, debugger config validation, prise en charge de Drupal et des améliorations notables pour beaucoup de Frameworks.

PhpStorm 7 Supporte PHP 5.5

Cette version fournit un haut niveau d’intégration de PHP 5.5, de nouveaux refactorings, de nouvelles inspections de codes, et des fonctionnalités pour le développement de back-end plus efficace. PHP 5.5 est maintenant entièrement pris en charge, y compris les générateurs, coroutines, le mot clé finally, liste dans le foreach, utilisation de la fonction empty() sur le résultat des appels de fonctions, la résolution de nom de classe scalaire via le mot-clé class, et constante array/string.

Itérateur yield PhpStorm

Une nouvelle coloration syntaxique par défaut

Des couleurs séparées sont désormais utilisées dans PhpStorm 7 pour :

  • Les déclaration de fonctions et méthodes.
  • Les appels aux fonctions et méthodes statiques.
  • Les classes et interfaces.

Différences de coloration syntaxique entre PhpStorm 6 et 7.

Vous avez également toujours la possibilité de modifier cette coloration syntaxique par défaut en vous rendant dans IDE Settings | Editor | Colors & Fonts | PHP.

Garder son code propre plus facilement avec PhpStorm 7

De nouveaux refactoring permettent de conserver un code aussi propre que possible : Move Static Member et  Extract Interfaces. De nouvelles inspections liées à PHP et des résolutions rapides ont été  introduites dans PhpStorm 7, ainsi que beaucoup d’inférences de type et l’amélioration PHPDoc.

Move Static Member

Avec la nouvelle fonctionnalité Move Static Member, nous pouvons déplacer les champs statiques et les méthodes pour un autre type. Par exemple, quand les classes contiennent des méthodes statiques qui ne sont que des méthodes utilité, nous pouvons les déplacer dans un type distinct . Pour y accéder dans l’éditeur, il suffit de placer le curseur sur une méthode statique et d’invoquer cette la fonctionnalité en appuyant sur la touche F6.

Move Static Member PhpStormAprès avoir trouvé le type où nous voulons déplacer ces membres, sélectionner les méthodes et les champs qui doivent être déplacés . Nous pouvons remanier immédiatement , ou utilisez le bouton de Prévisualisation pour voir les modifications qui seront effectuées . PhpStorm 7 va chercher toutes les références de ces membres statiques et s’assurer qu’ils sont à jour. L’IDE nous informer sur les problèmes potentiels ainsi. En utilisant le bouton de prévisualisation , nous pouvons voir clairement tous les cas où les méthodes retenues précédemment sont utilisés et où la fonction Move Static Member déplacera nos méthodes.

Extract Interface

La deuxième refactorisation de code introduite dans PhpStorm 7 est l’extraction d’interface. Cela permet de créer rapidement une nouvelle interface basée sur une interface ou une classe sélectionnée. Pour y accéder, il suffit de pointer le curseur sur le nom de la classe, puis utiliser l’action du menu contextuel Refractor | Extract | Interface.

Nous pouvons nommer l’interface, choisir si nous voulons remplacer les références de classe avec des références d’interface lorsque cela est possible. Ceci est extrêmement utile si nous voulons généraliser paramètres de la fonction et le type des conseils tout au long de notre application.

Extract Interface PhpStorm 7Nous pouvons également choisir l’espace de noms pour notre nouvelle interface. PhpStorm va ajouter l’espace de noms ainsi que les importations à la demande. Ensuite, nous pouvons choisir les membres qui formeront l’interface. Enfin, nous pouvons également choisir si nous voulons garder blocs PHPDoc, les copier ou les déplacer.

Une fois le refactoring est terminée, nous avons une nouvelle interface présente dans notre projet !

Nouveaux outils intégrés

Un environnement disponible en 2 clics avec Vagrant

Logo VagrantPhpStorm 7 intègre à présent nativement Vagrant, un outil open source permettant de créer des environnement de développement reproductibles. Cela permet également de partager une machine virtuelle de développement via un simple script. Les autres développeurs de l’équipe n’auront donc qu’à executer la commande Vagrant Up pour obtenir cet environnement ou l’effectuer directement depuis l’IDE.

Intégration Vagrant dan PhpStorm 7
Une fois que Vagrant Box est exécuté, nous pouvons également utilisé le terminal SSH intégré à PhpStorm pour travailler sur cette machine virtuelle. Plusieurs tutoriels Vagrant sont disponibles sur le site de JetBrains, et je recommande également d’aller voir le site de Vagrant ainsi que PuPHPet qui s’intègre très bien à Vagrant et permet de créer rapidement une machine virtuelle à partir de packages.

Configurations distantes rapides et efficaces

La console SSH intégrée permet de se connecter à une machine distante et d’effectuer des commandes par SSH.

Command Line Tool PhpStorm 7De plus, les SSH Remote Tools (Outils SSH à distance) peuvent être configuré pour executer n’importe quelle action directement depuis une combinaison de touche sur l’IDE. Très utile pour vider les caches de Symfony par exemple.

SSH Remote External Tool PhpStorm 7

Des commandes spécifiques aux Frameworks

PhpStorm 7 complète nativement certaines commandes spéicifiques aux Frameworks. Cette nouvelle version inclut donc la complétion automatique de Zend Framework 2 Tool, la Console Symfony (Lavarel et Doctrine) et Drush pour Drupal.Command Line Tool PhpStorm 7

Google App Engine

Google App EngineAvec PhpStorm 7, vous avez également la possibilité de développer des applications PHP pour Google App Engine et déléguer des tâches de déploiement à l’IDE. Annoncé lors de la conférence Google I/O 2013, Google App Engine est un service de Google permettant d’héberger ses applications web dans le cloud. Bien que l’API de l’environnement PHP de Google App Engine soit encore en Preview, les fonctionnalités dans PhpStorm sont déjà disponibles et fonctionnelles :

  • Créer l’application Google App Engine PHP de zero.
  • Executer localement l’application avec Google App Engine PHP.
  • Débugger l’application lcoalement avec Google App Engine PHP.
  • Télécharger et Déployer l’application sur Google App Engine PHP (Appspot)

D’autres fonctionnalités sont à venir, et un tutoriel détaillé est disponible, ainsi qu’une vidéo de démarrage.

Tester et Déboguer avec PhpStorm

La fonctionnalité la plus innovante est certainement la validation de l’environnement. Ainsi, si une erreur se glisse dans le php.ini de votre environnement, l’IDE vous fera gagner du temps en vous indiquant vos erreurs de configuration. Lors de la configuration de l’interprêteur du projet, PhpStorm informe de la présence d’un débuggeur et indique la version utilisée de Xdebug ou Zend Debugger. Valider l'environnement distant avec PhpStorm 7

Le smart step-into

Lorsqu’on débogue en PHP, on arrive parfois à une ligne de code faisant appel à plusieurs méthodes. Le débogger traditionnel permet de nous amener dans toutes les méthodes enfants appelées et ensuite de nous ramener à la fonction parente. La fonction intelligente de Step into introduite dans PhpStorm 7 qui permet de choisir dans quelle fonction le débugger doit s’engager.

Pour accéder à cette fonctionnalité utiliser : Smart Step-Into depuis le menu contextuel Run | Smart Step Into ou en utilisant le raccourci clavier Maj +F7.

Step-into intelligent PhpStorm 7

Amélioration de PhpUnit

PHPUnit 3.7 est maintenant supporté. L’IDE detectera automatiquement la version utilisée de PHPUnit lors de l’execution des tests !

Dans PhpStorm 7, PHPUnit peut désormais être configuré en utilisant un fichier de configuration XML.  Ce fichier peut spécifier les tests à effectuer ainsi que certaines optionscomme les comportements, timeouts, autoloaders, etc. Je vous renvoie vers la documentation de PhpUnit pour plus d’informations sur les options disponibles.

Fichier de configuration XML PhpStorm7

Spécifier les groupes à inclure ou exclure des tests

Depuis l’onglet des Groupes de Test de PhpStorm 7, nous avons maintenant la possibilité de séléctionner les groupes que nous voulons exécuter ou passer pendant un test. On pourra par exemple inclure uniquement les tests appartenant à la logique métier ou encore executer simplement des tests d’intégration.

Incure ou Exclure des groupes de test dans PhpStorm 7

Aussi, un test pourra appartenir à un ou plusieurs groupes. Pour ajouter un test à un groupe, utilisez l’annotation @group suivi du nom du groupe, autant de fois que nécessaire !

Frameworks et Plugins

Le développement Drupal avec PhpStorm 7

PhpStorm inclut désormais le plugin Drupal qui fournit de nombreuses fonctionnalités pour les versions Drupal 6 et 7, et dont certaines fonctionnent avec la version 8 également. C’est notamment le cas des fonctionnalités suivantes :

  • Activation de l’intégration de Drupal dans un projet PhpStorm existant, ou création d’un nouvau module Drupal
  • Auto-configuration de l’environnement de développement (standards, associations de fichiers, etc)
  • Le support des hooks de Drupal (conplétion, navigation dans l’invocation des hooks, documentation)
  • Intégration de Drush, loutil d’inteface en ligne de commande de Drupal
  • Recherche dans l’API de Drupal depuis l’éditeur.

Jetbrains fournit un tutoriel complet sur le développement Drupal avec PhpStorm.

De nombreux plug-ins disponibles pour les Frameworks

Depuis sa version 6, PHP Open API a été amélioré afin d’apporter un point d’extension puissant permettant aux créateurs de plugins de fournir des inférences de type, une complétion de code, et de nombreuses bonnes pratiques pour l’utilisation des cadriciels avec PhpStorm 7.

On retrouve les plus grands noms des Frameworks PHP dont Symfony2, Magento, Cake PHP, Yii et bien d’autres. Je vous renvoie vers la liste complète et à jour des plugins de Php Storm.

J’utilise en particilier le Framework Symfony2. Le plugin correspondant fournit de nombreuses fonctionnalités relatives à Symfony2 comme l’inférence de type, la complétion du code, lq navigation dans l’IDE à la fois pour le noyau Symfony, mais aussi ses composants, les templetes Twig, Doctrine, etc. L’éditeur offre une documentation détaillée du plugin Symfony2 pour PhpStorm.

Nouveaux outils pour le web

Les templates Javascripts

PhpStorm supporte le moteur de template EJS en offrant de la coloration syntaxique, l’assistance à la frappe, du formattage et de la fermeture automatique de balises, notamment pour les templates Handlebars et Mustache.

Composants Web

PhpStorm 7 introduit le support initial pour la technologie baptisée “Web Components”. On a dnoc la possibilité de créer des elements DOM personnalisés et PhpStorm fournit une complétion et un support CSS.

Feuilles de Styles modernes, JavaScript & NPM

PhpStorm 7 est livré avec une première prise en charge du language de feuille de style Stylus. Sont deja disponibles les fonctionnalité de complétion de code, formattage et compilation automatique du CSS.

Afin d’améliorer l’expérience avec Sass, il y a désormais un support pour Compass avec complétion du code, des fonctions de résolution et de recherche d’usages, et importation de variables depuis des fichiers Compass.

Pour un test efficace du code JavaScript, PhpStorm 7 inclut l’intégration du moteur d’execution de test Karma. Le code JavaScript peut donc être executé, déboggé et analysé directement depuis l’IDE.

Intégration de Karma dans PhpStorm 7Concernant le Node.js, PhpStor intègre des fonctionnalités NPM (Node Package Manager) permettant de rechercher et installer rapidement des programmes node.

Éditeur en temps réél et Debug JavaScript

Live Edit a été complètement revu tpour le rendre plus cohérent et intelligent. Il est uniquement disponible en session de Déboguage JavaScript: le contenu de la page est automatiquement rafraichi pour prendre en compte les changements..

Il y a désormais une vue nommée Variables (seulement pour Google Chrome aet Node.js) et un onglet Elements pour inspecter la page courrante and et voir son contenu en temps réél.

Editeur en temps réél PhpStorm7PhpStorm 7 prend en considération TypeScript 0.9, ainsi que d’autres languages, comme CoffeeScript et Dart qui ont été améliorés, et une nouvelle vue “Structure” est disponible pour LESS and Sass.

Améliorations de l’IDE

PhpStorm 7 renforce son intégration avec GitHub en autorisant les utilsateurs de ce dernier á faire des requêtes de type pull directement depuis l’IDE.

Les outils de base de données et l’éditeur SQL ont été amélioré significativement. Les changements incluent notamment une nouvelle complétion de code plus intelligente pour les jointures SQL.

complétion intelligente des jointures SQL PhpStorm 7Avec le nouveau mode présentation, l’IDE nous donne une nouvelle opportunité pour présenter notre travail et le processus de code en un clic, ce qui est tès utile pour les conférences ou les formations

Le mode Plein Écran qui était déjà nativement supporté sur Mac OS X est désormais disponible sous toutes les plateformes. Les utilisateurs de Windows et Linux peuvent donc se plonger également dans leur code sans perturbations.

Enfin, à savoir : PhpStorm inclus toutes es fonctionnalités de WebStorm (éditeur HTML/CSS , JavaScript).