Créé le 10/03/2021
Dernière mise à jour le 06/11/2021
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

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

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

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)

- 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 + ,"

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

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

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.

Coding standards
Dans File | Settings | Editor | Code Style
- "Hard wrap at" : 80
- "Visual guides" : 80

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


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"

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

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"

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

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)

Liens
- Version anglaise (répertoire docs)
Ajouter un commentaire