Programmation PHP/PhpStorm

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche



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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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

Fonctionnalités[modifier | modifier le wikicode]

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.

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, 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.

Pour le pretty-print XML ou JSON : Code\Reformat Code.

Gestion de version[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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.

Raccourcis clavier[modifier | modifier le wikicode]

Raccourcis clavier indispensables
Maj, Maj Rechercher un fichier
Ctrl + Maj + N Ouvrir un fichier (ex : quand on le copie-colle depuis le terminal)
Ctrl + Maj + F Rechercher dans les fichiers
Ctrl + G Aller à la ligne n°X
Alt + clic Décupler le curseur pour écrire la même chose à plusieurs endroits.
Ctrl + Maj + Alt + T Renommer en refactorant
Ctrl + D Dupliquer la ligne courante
Alt + F7 Trouver les utilisations de l'objet courant
Ctrl + E Fichiers récents
Ctrl + K Commiter
F2 Se rendre sur l'erreur de compilation du fichier courant
Alt + Insert Générer du code, par exemple les getters et setters à partir d'un attribut.

Plugins[modifier | modifier le wikicode]

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[1].
  • Lines sorter permet de trier les lignes.
  • EditorConfig récupère automatiquement la configuration d'IDE par projet (par exemple les conventions de codage)[2].

Critique[modifier | modifier le wikicode]

Début 2019, il considère à tort un fichier accessible par deux liens symboliques Linux comme deux fichiers.

Références[modifier | modifier le wikicode]