- Accueil
- Objectifs de la séance
- Introduction
- Installation de
PhpStorm
dans un environnement Windows - Premier lancement de
PhpStorm
- Créer facilement un nouveau projet
PhpStorm
- Configuration de
PhpStorm
- Activation de la licence
- Version du langage
PHP
- Typage strict en
PHP
- Correction de la disparition des fichiers de
$HOME
au département informatique - Exécution de
Composer
à traversPhpStorm
- Analyse statique / tests statiques de code
PHP
- Intégration du Français dans les langues de relecture
- Que faire lorsque
PhpStorm
ne reconnait plus les fonctionsPHP
? bash
comme shell dans un environnement Windows- Personnalisation des couleurs du terminal
Objectifs de la séance ¶
- Configurer
PhpStorm
- Installer
PHP Coding Standards Fixer
(a.k.a.PHP CS Fixer
) - Installer
PHP Mess Detector
(a.k.a.PHPMD
)
Introduction ¶
La gestion de nombreux fichiers dans une arborescence complexe demande un IDE adéquat, vous utiliserez PhpStorm
pour l'édition de texte et la gestion globale du projet. Des greffons apportent le support de Symfony
, composer
, des fichiers YAML
, Twig
, … Certains sont préinstallés dans la configuration générale.
Vous pourrez gérer vos sources et vos suites de tests plus facilement avec PhpStorm
.
Information
PhpStorm
est un outil puissant parmi d'autres développés par JetBrains. Leur utilisation dans la cadre professionnel impose de s'acquitter d'une licence annuelle. Cependant, dans la cadre universitaire, vous pouvez disposer d'une licence gratuite pour les étudiants. Ceci vous permet d'utiliser les outils sur votre ordinateur personnel, tant que vous êtes étudiant. L'utilisation de PhpStorm
au sein du département ne nécessite pas de démarche particulière puisque nous avons un serveur de licences JetBrains.
Je vous invite néanmoins à demander une licence et à travailler sur votre ordinateur personnel en dehors des séances de TP.
Installation de PhpStorm
dans un environnement Windows
¶
Afin que vous puissiez travailler sur votre ordinateur personnel sur Windows, suivez la procédure d'installation.
Travail à réaliser
- Rendez-vous sur la page de téléchargement de
PhpStorm
- Téléchargez le programme d'installation pour Windows et lancez-le
- Validez le chemin d'installation
- Choisissez les options d'installation conformément à la capture d'écran suivante
- Validez le nom du répertoire du menu
- Attendez la fin de l'installation
- Cochez la case et terminez l'installation
Premier lancement de PhpStorm
¶
Dans un environnement Linux ¶
Le premier lancement de PhpStorm
est l'occasion de fixer certaines options de configuration dont une partie est propre à Linux.
Travail à réaliser
- Lancez
PhpStorm
- Acceptez les conditions d'utilisation
- Faites un choix concernant l'envoi de données anonymes
- Choisissez votre thème
- Choisissez la création d'une icône sur votre bureau
- Étudiez l'option de création d'un script de lancement
- Installez les greffons « .env files support », « EditorConfig » et « Symfony Plugin »
PhpStorm
se lance- Si vous avez déjà fait une demande de licence éducation, saisissez les informations de votre compte
- Si vous commencez un TP et que le temps presse, choisissez l'option d'évaluation pour 30 jours et faites la demande de licence éducation sur votre temps libre
PhpStorm
est prêt
Dans un environnement Windows ¶
Le premier lancement de PhpStorm
est l'occasion de fixer certaines options de configuration.
Travail à réaliser
- Lancez
PhpStorm
- Acceptez les conditions d'utilisation
- Faites un choix concernant l'envoi de données anonymes
PhpStorm
se lance- Choisissez votre thème
- Installez les greffons « .env files support », « EditorConfig » et « Symfony Plugin »
- Si vous avez déjà fait une demande de licence éducation, saisissez les informations de votre compte
- Si vous commencez un TP et que le temps presse, choisissez l'option d'évaluation pour 30 jours et faites la demande de licence éducation sur votre temps libre
PhpStorm
est prêt
Créer facilement un nouveau projet PhpStorm
¶
PhpStorm
dispose d'un assistant pour la création d'un nouveau projet. Il est cependant parfois plus rapide de lancer PhpStorm
directement dans le répertoire du projet à partir de la ligne de commande ou d'un menu contextuel.
Dans un environnement Linux ¶
La création d'un nouveau projet PhpStorm
se fait simplement en lançant dans le répertoire du projet en ligne de commande :
cd répertoire_de_mon_projetsuivi de
phpstorm . &
Dans un environnement Windows ¶
La création d'un nouveau projet PhpStorm
se fait à l'aide du menu contextuel « Open Folder as PhpStorm Project » sur le répertoire du projet :
Configuration de PhpStorm
¶
La configuration de PhpStorm
peut se faire au niveau général pour être appliquée à la création de chaque projet ou se faire au niveau de chaque projet. Nous allons tout d'abord nous intéresser à la configuration générale.
Activation de la licence ¶
Si vous aviez choisi l'option d'évaluation pour 30 jours lors du premier lancement de PhpStorm
, une fois votre demande de licence éducation validée, vous devez ajouter votre licence.
Travail à réaliser
- Lancez
PhpStorm
- Si aucun projet n'est ouvert, allez dans « Configure » puis « Manage Licences… »
- Si un projet est ouvert, allez dans le menu « Help » puis « Register… »
- Appuyez sur « Add New Licence »
- Saisissez les information de votre licence
Version du langage PHP
¶
Afin de profiter des suggestions de PhpStorm
, il convient de lui indiquer la version de PHP
dans laquelle nous codons.
Travail à réaliser
- Si vous avez déjà ouvert un projet, fermez-le pour accéder à l'interface de base :
- Cliquez sur « Configure » puis « Settings »
- Accédez ensuite à la section « Languages & Frameworks » puis « PHP » et fixez la version du langage ainsi que le chemin vers l'interpréteur
Typage strict en PHP
¶
Pour nous éviter de définir manuellement le typage strict dans chacun de nos fichiers (et accessoirement d'oublier de le faire…), nous allons modifier le modèle de fichier PHP
de PhpStorm
.
Travail à réaliser
- Dans les préférences, accédez à la section « Editor » puis « File and Code Templates » dans laquelle vous chercherez le type « PHP File Header » dans l'onglet « Includes »
- Ajoutez
declare(strict_types=1);
- Veillez à ce que la modification porte sur « Default » (« Scheme »)
Correction de la disparition des fichiers de $HOME
au département informatique
¶
Un bug récent a été constaté dans l'environnement de travail du département informatique. Il arrive que PhpStorm
perde la vision des fichiers du projet qui peuvent réapparaître au bout de quelques minutes. Une manœuvre de contournement semble fonctionner.
Travail à réaliser
- Téléchargez le fichier idea.properties et enregistrez-le à la racine de votre compte
- (Re)lancez
PhpStorm
Exécution de Composer
à travers PhpStorm
¶
Si vous utilisez les fonctionnalités Git
à travers PhpStorm
sur Linux
, en conjonction avec GrumPHP
, vous rencontrerez certainement le message d'erreur suivant, rendant impossible la validation de la tâche « composer
» :
The executable for "composer" could not be found.
Ceci est lié à l'installation de Composer
dans la sous-arborescence des fichiers de l'utilisateur ainsi qu'à la configuration de l'environnement du « shell » « bash
» lié à ses divers fichiers d'initialisation.
La solution la plus appropriée est de déporter la configuration de la variable « PATH
» dans le fichier « $HOME/.profile
». Vous devez donc transférer les lignes concernées du fichier « $HOME/.bashrc
» vers « $HOME/.profile
» (que vous devez créer s'il n'existe pas dans votre compte). Une déconnexion/reconnexion est nécessaire pour que les modifications soient prises en compte.
Analyse statique / tests statiques de code PHP
¶
PhpStorm
peut être complété par des outils d'analyse statique de code. Vous utiliserez PHP Coding Standards Fixer
(a.k.a. PHP CS Fixer
) et PHP Mess Detector
(a.k.a. PHPMD
). L'objectif de PHP CS Fixer
est de vous alerter sur le non-respect des standards de codage PHP
alors que celui de PHPMD
est de détecter les failles potentielles de vos sources (variables non initialisées, code trop complexe, …).
Remarque importante
Pour pouvoir configurer les outils PHP CS Fixer
et Mess Detector
, vous devez avoir préalablement créé un projet dans PhpStorm
. Si vous n'avez pas encore créé le projet nécessaire à votre TP, faites une pose dans ce guide de configuration et poursuivez-le après créé votre répertoire de TP, initialisé votre dépôt Git et créé un nouveau projet dans PhpStorm
.
PHP CS Fixer
¶
Travail à réaliser
- Si ce n'est pas déjà fait, installez
Composer
à l'aide du tutoriel dédié - Cherchez le nom du paquet correspondant à
CS Fixer
avec :composer search cs-fixer
- Lancez l'installation de
PHP CS Fixer
en utilisant la commanderequire
combinée à l'option--dev
decomposer
:composer require friendsofphp/php-cs-fixer --dev
Using version ^2.16 for friendsofphp/php-cs-fixer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 24 installs, 0 updates, 0 removals - Installing psr/container (1.0.0): Downloading (100%) - Installing symfony/service-contracts (v2.0.1): Downloading (100%) - Installing symfony/stopwatch (v5.0.4): Downloading (100%) - Installing symfony/process (v5.0.4): Downloading (100%) - Installing symfony/polyfill-php72 (v1.14.0): Downloading (100%) - Installing paragonie/random_compat (v9.99.99): Downloading (100%) - Installing symfony/polyfill-php70 (v1.14.0): Downloading (100%) - Installing symfony/options-resolver (v5.0.4): Downloading (100%) - Installing symfony/finder (v5.0.4): Downloading (100%) - Installing symfony/polyfill-ctype (v1.14.0): Downloading (100%) - Installing symfony/filesystem (v5.0.4): Downloading (100%) - Installing psr/event-dispatcher (1.0.0): Downloading (100%) - Installing symfony/event-dispatcher-contracts (v2.0.1): Downloading (100%) - Installing symfony/event-dispatcher (v5.0.4): Downloading (100%) - Installing symfony/polyfill-php73 (v1.14.0): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.14.0): Downloading (100%) - Installing symfony/console (v5.0.4): Downloading (100%) - Installing psr/log (1.1.2): Downloading (100%) - Installing php-cs-fixer/diff (v1.3.0): Downloading (100%) - Installing doctrine/lexer (1.2.0): Downloading (100%) - Installing doctrine/annotations (v1.8.0): Downloading (100%) - Installing composer/xdebug-handler (1.4.0): Downloading (100%) - Installing composer/semver (1.5.1): Downloading (100%) - Installing friendsofphp/php-cs-fixer (v2.16.1): Downloading (100%) symfony/service-contracts suggests installing symfony/service-implementation paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.) symfony/event-dispatcher suggests installing symfony/dependency-injection symfony/event-dispatcher suggests installing symfony/http-kernel symfony/console suggests installing symfony/lock friendsofphp/php-cs-fixer suggests installing php-cs-fixer/phpunit-constraint-isidenticalstring (For IsIdenticalString constraint.) friendsofphp/php-cs-fixer suggests installing php-cs-fixer/phpunit-constraint-xmlmatchesxsd (For XmlMatchesXsd constraint.) Writing lock file Generating autoload files
- Observez le contenu du répertoire
vendor/bin
- Rendez-vous dans les préférences de
PhpStorm
dans « Languages & Frameworks → PHP → Quality Tools » - Lancez la configuration de
PHP CS Fixer
- Recherchez l'exécutable
php-cs-fixer
dansvendor/bin
dans votre projetRemarque importanteSur Windows, vous devez rechercher l'exécutable
php-cs-fixer.bat
- Vérifiez le bon fonctionnement de
php-cs-fixer
en appuyant sur le bouton « Validate » - Si tout est correct, vous devez observer un message en bas de la fenêtre
Remarque importante
Le paramètre « Tool process timeout, sec [1…30] » donne le temps d'attente au-delà duquel
PhpStorm
considère quePHP CS Fixer
doit être arrêté lors d'une analyse de votre code. Si votre machine est un peu lente, vous devriez augmenter la valeur. - Activez
PHP CS Fixer
- Choisissez le jeu de règles qui correspond au style de codage désiré («
Symfony
», «PSR-12
», «Custom
», …)
Mess Detector
¶
Travail à réaliser
- Cherchez le nom du paquet correspondant à «
PHPMD
» avec :composer search phpmd
- Lancez l'installation de
PHPMD
en utilisant la commanderequire
combinée à l'option--dev
decomposer
:composer require phpmd/phpmd --dev
Using version ^2.8 for phpmd/phpmd ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 4 installs, 0 updates, 0 removals - Installing symfony/config (v5.0.4): Downloading (100%) - Installing symfony/dependency-injection (v5.0.4): Downloading (100%) - Installing pdepend/pdepend (2.7.1): Downloading (100%) - Installing phpmd/phpmd (2.8.1): Downloading (100%) symfony/config suggests installing symfony/yaml (To use the yaml reference dumper) symfony/dependency-injection suggests installing symfony/yaml symfony/dependency-injection suggests installing symfony/expression-language (For using expressions in service container configuration) symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them) Writing lock file Generating autoload files
- Observez le contenu du répertoire
vendor/bin
Remarque importanteUn problème de dépendances a été constaté dans certaines conditions. S'il apparait, désinstallez
CS Fixer
:composer remove friendsofphp/php-cs-fixer --dev
puis installez les deux outils en une fois :composer require phpmd/phpmd friendsofphp/php-cs-fixer --dev
- Copiez à la racine de votre projet le fichier de configuration (télécharger) de
PHP Depend
qui est utilisé parMess Detector
Remarque importanteCette configuration de
PHP Depend
est indispensable sur les PC de l'IUT. En effet,PHP Depend
génère des fichiers et répertoire de cache dans «$HOME/.pdepend
», donc dans le système de fichier partagé enNFS
, ce qui ralentit considérablement le temps d'analyse des fichiers du projet. - Configurez
Mess Detector
dansPhpStorm
, de manière similaire àPHP CS Fixer
- Lancez la configuration de
Mess Detector
- Recherchez l'exécutable
phpmd
dansvendor/bin
dans votre projetRemarque importanteSur Windows, vous devez rechercher l'exécutable
phpmd.bat
- Vérifiez le bon fonctionnement de
phpmd
en appuyant sur le bouton « Validate » - Si tout est correct, vous devez observer un message en bas de la fenêtre
Remarque importante
Le paramètre « Tool process timeout, sec [1…30] » donne le temps d'attente au delà duquel
PhpStorm
considère queMess Detector
doit être arrêté lors d'une analyse de votre code. Si votre machine est un peu lente, vous devriez augmenter la valeur. - Activez
PHP MD
- Cochez toutes les options pour les activer
- Parcourez rapidement le Quick Start Guide de
PhpStorm
pour découvrir son interface et les grandes lignes de ses fonctionnalités
Intégration du Français dans les langues de relecture ¶
En plus de contrôler que votre code est correct, PhpStorm
peut vérifier l'orthographe et la grammaire de votre code mais aussi des textes qu'il contient.
Travail à réaliser
- Ouvrez les préférences de
PhpStorm
- Allez dans la section « Editor » puis « Proofreading »
- Localisez le bouton « + »
- Sélectionnez les langues naturelles utiles
- La configuration est terminée
Que faire lorsque PhpStorm
ne reconnait plus les fonctions PHP
?
¶
Un bug de PhpStorm
fait qu'il se peut qu'il ne reconnaisse plus les fonctions PHP
:
Travail à réaliser
- Fermez
PhpStorm
- Rendez-vous dans le répertoire du cache de
PhpStorm
correspondant à votre système d'exploitation et supprimez son contenu- Windows:
%USERPROFILE%\AppData\Local\JetBrains\PhpStorm2020.2\caches
- Linux:
~/.cache/JetBrains/PhpStorm2020.2/caches
- macOS:
~/Library/Caches/JetBrains/PhpStorm2020.2/caches
- Windows:
- Ouvrez
PhpStorm
bash
comme shell dans un environnement Windows
¶
Sur Windows, le terminal de PhpStorm
est en réalité la console Windows (cmd.exe
). Vous pouvez intégrer bash
à la place.
Travail à réaliser
- Ouvrez les préférences de
PhpStorm
(CTRL+ALT+S
) - Dirigez-vous vers la section « Tools » puis « Terminal »
- Modifiez le chemin « Shell path » pour désigner
bash
avec les options nécessaires : «C:\Program Files\Git\bin\bash.exe --login -i
» - Dirigez-vous à présent vers la section « Tools » puis « Terminal »
Personnalisation des couleurs du terminal ¶
Vous avez certainement constaté que les couleurs du terminal ne sont pas toujours lisibles, en particulier les résultats des tests. Le fond rouge est trop fade et le texte est blanc :
Le fond vert est tout juste assez soutenu :
Travail à réaliser
- Ouvrez les préférences de
PhpStorm
(CTRL+ALT+S
) - Dirigez-vous vers la section « Editor », « Color Scheme » puis « Console Colors »
- Recherchez « Black » dans « ANSI Colors » pour constater que le noir ne l'est pas vraiement :
- Corrigez la valeur du noir
- Procédez de manière similaire pour le blanc qui doit s'approcher de
FFFFFF
- Foncez un peu le rouge avec la valeur
C030303
- Notez que vous pouvez exporter ces préférences de couleurs :