PHPStorm

Créé le 10/03/2021

Dernière mise à jour le 06/11/2021

Étiquettes

La configuration suivante doit être adaptée à votre installation, elle se base sur https://gitlab.com/florenttorregrosa-drupal/docker-drupal-project.

La documentation a été faite sur PHPStorm 2020.3.2

Indexation de dossiers

Exclure les dossiers suivants de l'indexation :

  • app/sites/default/files
  • app/sites/simpletest (existera uniquement lorsque vous aurez lancé des tests PHPUnit)
  • backups
  • build
  • data
  • private_files
  • www

Option 1 :

  • faire un clic droit sur le dossier
  • sélectionner "Mark directory as" > "Excluded"

Option 2 :

  • dans File | Settings | Directories
  • indiquer les dossiers comme exclus
PHPStorm configuration exclusion de dossiers

XDebug

Configuration

Dans File | Settings | Languages & Frameworks | PHP | Debug

  • "Break at first line in PHP Scripts" : décoché
  • "Debug port" : 9000,9003
  • "Force break at first line when no path mapping specified" : décoché
  • "Force break at first line when a script is outside the project" : décoché
  • "Notify if debug session was finished without being paused" : décoché

Optionnel :

  • vous pouvez augmenter le paramètre "Max. simultaneous connections" si vous le souhaitez
Configuration XDebug dans PHPStorm

Dans File | Settings | Languages & Frameworks | PHP | Servers

La première fois que vous "écouterez" XDebug sur un projet, une popin apparaîtra demandant si vous voulez accepter la connexion depuis le conteneur. Cliquer sur "Accept".

Si vous n'avez toujours pas "écouté" du débug sur un projet, vous pouvez configurer un serveur à l'avance.

Configurer une correspondance entre les fichiers de votre ordinateur et les fichiers dans le conteneur.

Par défaut, la racine du projet est montée sur "/project" dans le conteneur, donc dans "Absolute path on the server" pour la racine du projet mettre "/project".

Correspondance de chemins avec le conteneur pour le débug

Note : vous devez également configurer la correspondance dans le serveur "web" pour avoir les points d'arrêts Xdebug fonctionnels lors de l'utilisation de la ligne de commande (par exemple Drush).

Macro

Pour éviter l'effet de bord d'un point d'arrêt positionné sur une condition if, dans ce cas le point d'arrêt ne fonctionne pas nécessairement, vous pouvez placer un point d'arrêt sur une assignation :

$foo = 'bar';

Alors pour faciliter l'utilisation des points d'arrêts vous pouvez créer une macro pour taper l'assignation pour vous.

  • commencer l'enregistrement de la macro : Edit | Macros | Start Macro Recording
  • placer le curseur sur une ligne vide et taper "$foo = 'bar';" (sans les double guillemets)
Exemple de macro pour un point d'arrêt
  • cliquer sur la gauche de votre éditeur pour ajouter un point d'arrêt
  • arrêter l'enregistrement de la macro : Edit | Macros | Stop Macro Recording
  • donner le nom que vous souhaitez à votre macro : "Breakpoint"
  • donner un raccourci à votre macro :
    • dans File | Settings | Keymap, trouver votre macro
    • faire un clic droit sur le nom de la macro
    • sélectionner "Add Keyboard Shortcut"
    • taper les touches de votre raccourci : "ctrl + maj + ,"
Exemple d'un raccourci de macro

Plugins

Installer les plugins suivants :

  • Drupal Symfony Bridge
  • PHP Annotations
  • Symfony Support

Optionnels mais recommandés :

  • .env files support
  • ANSI Highlighter
  • CSV Plugin
  • Ideolog
  • Makefile support
Plugins à installer dans PHPStorm

Intégration Drupal

Dans File | Settings | Languages & Frameworks | PHP | Frameworks

  • "Enable Drupal integration" : coché
  • "Drupal installation path" : sélectionner le dossier de votre application
  • "Version" : sélectionner la version majeure actuelle de votre site Drupal
PHPStorm configuration intégration Drupal

Intégration Symfony

Dans File | Settings | Languages & Frameworks | PHP | Symfony

  • "Enable Plugin for this project (change need restart)" : coché

Optionnel :

  • Vous pouvez adapter "App Directory" et "Web Directory" à votre installation.
PHPStorm configuration intégration Symfony

Coding standards

Dans File | Settings | Editor | Code Style

  • "Hard wrap at" : 80
  • "Visual guides" : 80
PHPStorm configuration code style général

Dans File | Settings | Editor | Code Style | PHP

  • cliquer sur le lien "Set from..." sur la droite
  • sélectionner "Drupal"

Dans File | Settings | Editor | Code Style | JavaScript

  • cliquer sur le lien "Set from..." sur la droite
  • sélectionner "Drupal Javascript Style"

Dans File | Settings | Editor | Code Style | Style Sheets | CSS

  • cliquer sur le lien "Set from..." sur la droite
  • sélectionner "Drupal CSS Style"

Dans :

  • File | Settings | Editor | Code Style | Style Sheets | Less
  • File | Settings | Editor | Code Style | Style Sheets | Sass
  • File | Settings | Editor | Code Style | Style Sheets | SCSS
  • cliquer sur le lien "Set from..." sur la droite
  • sélectionner "CSS"

Dans :

  • File | Settings | Editor | Code Style | HTML
  • File | Settings | Editor | Code Style | JSON
  • File | Settings | Editor | Code Style | Twig
  • File | Settings | Editor | Code Style | YAML
  • cliquer sur le lien "Set from..." sur la droite
  • sélectionner "PHP"

Outils (inspection en direct)

PHP CLI interpreter

Si vous avez PHP d'installé sur votre ordinateur, vous pouvez l'utiliser comme interpréteur CLI.

Ou vous pouvez utiliser PHP dans un conteneur Docker, cela assurera que vous exécuterai le même PHP de votre projet. Voici les étapes pour cela :

  • dans File | Settings | Languages & Frameworks | PHP
  • cliquer sur "..." à la droite de la ligne "CLI Interpreter"
  • cliquer sur le "+" pour ajouter a nouvel interpréteur
  • sélectionner "From Docker, Vagrant, VM, WSL, Remote..."
  • sélectionner "Docker Compose"
  • sélectionner un "Serveur", ajouter en un si nécessaire
    • "Name" : "Docker"
    • "Connect to Docker daemon with" : "Unix socket"
    • enregistrer le serveur
  • "Service" : "web" (le service contenant PHP)
  • enregistrer cet interpréteur PHP distant
  • "Lifecycle" : "Always start a new container ('docker-compose run')". L'autre option ne fonctionne pas. PHPStorm créera un conteneur nommé "phpstorm_helpers_PS-*"

PHPCS

Dans File | Settings | Languages & Frameworks | PHP | Quality Tools

  • dans la section "PHP_CodeSniffer", cliquer sur "..." à la droite de "Configuration"
  • cliquer sur le "+" pour ajouter un nouvel exécutable
  • "CLI interpreter" : sélectionner l'intépréteur PHP ClI configuré précédemment
  • "PHP_CodeSniffer path" : "/project/vendor/bin/phpcs" (le chemin dans le conteneur)
  • "Path to phpcbf" : "/project/vendor/bin/phpcbf" (le chemin dans le conteneur)
  • enregistrer cet exécutable
  • le sélectionner
Étape 1 de configuration de PHPCS dans PHPStorm
Étape 2 de configuration de PHPCS dans PHPStorm

Dans File | Settings | Editor | Inspections

PHP > Quality tools > PHP_CodeSniffer validation

  • "Check files with extensions" : utiliser la liste d'extensions configurée dans le fichier phpcs.xml.dist
  • "Coding standard" : "Custom"
  • cliquer sur "..." à la droite de "Coding standard"
  • sélectionner le chemin vers le fichier "phpcs.xml.dist" sur votre ordinateur, il est situé dans "scripts/quality/phpcs/phpcs.xml.dist"
PHPStorm configuration inspecteur PHPCS

PHPMD

Dans File | Settings | Languages & Frameworks | PHP | Quality Tools

  • dans la section "Mess Detector", cliquer sur "..." à la droite de "Configuration"
  • cliquer sur le "+" pour ajouter un nouvel exécutable
  • "CLI interpreter" : sélectionner l'intépréteur PHP ClI configuré précédemment
  • "PHP Mess Detector path" : "/project/vendor/bin/phpmd" (le chemin dans le conteneur)
  • enregistrer cet exécutable
  • le sélectionner
Configuration de PHPMD dans PHPStorm

Dans File | Settings | Editor | Inspections

PHP > Quality tools > PHP Mess Detector validation

  • "Custom rulesets" : sélectionner le chemin vers le fichier "phpmd.xml.dist" sur votre ordinateur, il est situé dans "scripts/quality/phpmd/phpmd.xml.dist"
PHPStorm configuration inspecteur PHPMD

PHPStan

Dans File | Settings | Languages & Frameworks | PHP | Quality Tools

  • dans la section "PHPStan", cliquer sur "..." à la droite de "Configuration"
  • cliquer sur le "+" pour ajouter un nouvel exécutable
  • "CLI interpreter" : sélectionner l'intépréteur PHP ClI configuré précédemment
  • "PHPStan path" : "/project/vendor/bin/phpstan" (le chemin dans le conteneur)
  • enregistrer cet exécutable
  • le sélectionner
Configuration de PHPStan dans PHPStorm

Dans File | Settings | Editor | Inspections

PHP > Quality tools > PHPStan validation

  • "Level" : 8
  • "Configuration file" : "/project/scripts/quality/phpstan/phpstan.neon.dist" (le chemin dans le conteneur)
PHPStorm configuration inspecteur PHPStan

Liens

Ajouter un commentaire