< Programmation PHP

IDE en freemium réputé le meilleur pour le langage PHP (compter 10 € par mois pour l'utiliser au-delà d'un mois), PhpStorm permet entre autres des recherches ultra-rapides dans le code grâce à son indexation, de l'autocomplétion des langages Web, et de nombreuses optimisations de code.

Installation

Le logiciel est multi-plateforme est ses prérequis figure avec les liens de téléchargement sur le site officiel : https://www.jetbrains.com/help/phpstorm/installation-guide.html.

Configuration

Pour un projet git, il est recommandé d'ajouter le dossier .idea/ créé par PhpStorm dans le fichier .gitignore.

Fonctionnalités

Refactorisation

Par rapport à ses concurrents, il offre de nombreuses options de refactorisation. Par exemple, quand on renomme une variable en passant par le menu "Refactor", il peut le répercuter dans tout le code du projet qui l'appelle, y compris dans les getters et setters. De plus, il peut ajouter ces derniers automatiquement, ainsi que le constructeur d'une classe selon ses attributs (raccourci ALT + Ins), avec un formatage très personnalisable, par exemple pour les retours à la ligne après chaque attributs ou selon une largeur.

A ce propos, afin de respecter la PSR-1 lors de l'insertion de setters, il convient de paramétrer dans Editor\Code Style\PHP\Blank lines, Before return statement = 1.

Autoformatage

Il fournit aussi de nombreuses options d'autoformatage et son analyse de code permet par exemple de trouver les variables non utilisées. Quand on appelle une méthode avec du type hinting, il apparait sans avoir besoin d'ouvrir le fichier de cette dernière. Depuis la version 2019.3, il affiche les méthodes mortes en couleur plus sombre (en plus des variables mortes qu'il signalait déjà).

Par ailleurs, pour le pretty-print XML ou JSON : Code\Reformat Code.

Terminal

Par ailleurs, il possède un lien vers un terminal shell (modifiable) intégré dans une fenêtre du footer, et peut aussi exécuter des requêtes SQL sur des bases si on lui ajoute les sources de données. A ce propos, il permet de naviguer dans une base de données nativement avec une interface, comme le fait PhpMyAdmin, Adminer ou MySQL Workbench.

Gestion de version

Son système VCS est compatible avec git et permet de voir l'historique des modifications des fichiers en couleur. Par exemple avec un clic droit dans la marge on peut afficher les annotations pour retrouver l'auteur d'un passage, puis réitérer l'opération en affichant les annotations précédentes pour remonter tout l'historique.

De plus, quand on regarde le différentiel des fichiers modifiés depuis le dernier commit (onglet "Version Control" en bas, "resolve", puis "merge..."), en cas de conflit il propose un outil de résolution à trois colonnes très ergonomique.

Xdebug

Xdebug peut être déclenché depuis une page Web ou une commande shell. S'il est déjà installé sur le serveur PHP, et pour les pages Web dans le navigateur, voici ce qu'il reste à faire pour le faire fonctionner dans PhpStorm :

  • Cliquer sur l'icône en haut à droite Listen for debug connect.
  • Lancer le script à déboguer (afficher la page Web ou entrer la commande shell).

Une fenêtre apparait alors dans PhpStorm Incoming Connection From Xdebug, demandant quel est l'index.php correspondant au signal reçu. Cocher "Import mappings from deployment" si les fichiers sont exécutés sur un serveur distant, et "Manually choose local file or project" s'il est local. Cette deuxième option dresse une liste des index.php trouvés dans le projet, mais pour conserver celui par défaut, choisir leur dossier parent (le nom du projet), et cliquer sur "Accept".

En cas de problème, un outil de diagnostic se trouve dans File, Settings, chercher "Xdebug".

Docker

Si le serveur PHP est dans un conteneur Docker, il faut le stipuler à PhpStorm :

  • Ajouter un serveur : dans File, (Languages & Frameworks,) PHP, Servers, ajouter une URL pour le port 80, et une pour le 443. Pour chacun, cocher "Use path mappings" et y mettre le chemin de chaque projet accessible dans le conteneur PHP.
  • Ajouter une configuration de lancement : en haut à droite dans Add Configuration... ou Edit Configurations..., créer une entrée PHP Remote Debug, dans laquelle il faut renseigner le serveur précédemment créé, et la clé de session envoyée par le module de son navigateur.
Logo Le php.ini dépend de l'OS hôte[1] :
  • Linux :
 xdebug.remote_host = 172.170.0.1
  • Windows :
 xdebug.remote_host = "docker.for.win.host.internal"
  • Mac :
 xdebug.remote_host = "docker.for.mac.host.internal"


Raccourcis clavier

Raccourcis clavier indispensables
Maj, MajRechercher un fichier
Ctrl + Maj + NOuvrir un fichier (ex : quand on le copie-colle depuis le terminal)
Ctrl + Maj + FRechercher dans les fichiers
Ctrl + GAller à la ligne n°X
Alt + clicDécupler le curseur pour écrire la même chose à plusieurs endroits.
Ctrl + DDupliquer la ligne courante
Ctrl + Maj + AltSélectionner (en clic, double-clic ou glisser) plusieurs morceaux de codes pour pouvoir les copier.
Ctrl + Maj + Alt + TRenommer en refactorant
Alt + F7Trouver les utilisations de l'objet courant
Ctrl + EFichiers récents
Ctrl + KCommiter
F2Se rendre sur l'erreur de compilation du fichier courant
Alt + InsertGénérer du code, par exemple le constructeur ou les getters et setters à partir des attributs.
Ctrl + LVider le terminal (utile pour afficher uniquement les derniers logs)

Plugins

PhpStorm dispose de plusieurs plugins installables dans un deuxième temps, classables par thèmes. Certains sont payants.

  • Par exemple il en existe pour plusieurs frameworks PHP. Son plugin Symfony donne accès aux fichiers YAML de déclaration de services depuis les PHP et vice-versa en un clic[2].
  • Lines sorter permet de trier les lignes.
  • EditorConfig récupère automatiquement la configuration d'IDE par projet (par exemple les conventions de codage)[3].

Critique

  • Début 2019, il considère à tort un fichier accessible par deux liens symboliques Linux comme deux fichiers.
  • En 2020, quand plusieurs projets sont ouverts ensemble, il mélange leurs namespaces comme si c'était le même (notamment dans les CTRL + clic).

Références

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.