Jérôme Cutrona

Version statique de l'intranet de Jérôme Cutrona - Rejoindre la version dynamique 🔒

Les exemples et corrections sont potentiellement non fonctionnels.

B.U.T. Informatique - IUT de Reims - Université de Reims

Installation et configuration de PhpStorm

Navigation

Objectifs de la séance

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
  1. Rendez-vous sur la page de téléchargement de PhpStorm
  2. Téléchargez le programme d'installation pour Windows et lancez-le setup phpstorm
  3. Validez le chemin d'installation setup phpstorm
  4. Choisissez les options d'installation conformément à la capture d'écran suivante setup phpstorm
  5. Validez le nom du répertoire du menu setup phpstorm
  6. Attendez la fin de l'installation setup phpstorm
  7. Cochez la case et terminez l'installation setup phpstorm

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
  1. Lancez PhpStorm
  2. Acceptez les conditions d'utilisation phpstorm Linux first run
  3. Faites un choix concernant l'envoi de données anonymes phpstorm Linux first run
  4. Choisissez votre thème phpstorm Linux first run
  5. Choisissez la création d'une icône sur votre bureau phpstorm Linux first run
  6. Étudiez l'option de création d'un script de lancement phpstorm Linux first run
  7. Installez les greffons « .env files support », « EditorConfig » et « Symfony Plugin » phpstorm Linux first run
  8. PhpStorm se lance phpstorm Linux first run
  9. Si vous avez déjà fait une demande de licence éducation, saisissez les informations de votre compte phpstorm Linux first run
  10. 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 Linux first run
  11. PhpStorm est prêt phpstorm Linux first run

Dans un environnement Windows

Le premier lancement de PhpStorm est l'occasion de fixer certaines options de configuration.

Travail à réaliser
  1. Lancez PhpStorm
  2. Acceptez les conditions d'utilisation phpstorm Windows first run
  3. Faites un choix concernant l'envoi de données anonymes phpstorm Windows first run
  4. PhpStorm se lance phpstorm Windows first run
  5. Choisissez votre thème phpstorm Windows first run
  6. Installez les greffons « .env files support », « EditorConfig » et « Symfony Plugin » phpstorm Windows first run
  7. Si vous avez déjà fait une demande de licence éducation, saisissez les informations de votre compte phpstorm Windows first run
  8. 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 Windows first run
  9. PhpStorm est prêt phpstorm Windows first run

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_projet
suivi 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 : Capture d'écran à venir

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
  1. Lancez PhpStorm
  2. Si aucun projet n'est ouvert, allez dans « Configure » puis « Manage Licences… » phpstorm manage licence
  3. Si un projet est ouvert, allez dans le menu « Help » puis « Register… » phpstorm manage licence
  4. Appuyez sur « Add New Licence » phpstorm manage licence
  5. Saisissez les information de votre licence phpstorm manage 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
  1. Si vous avez déjà ouvert un projet, fermez-le pour accéder à l'interface de base : phpstorm
  2. Cliquez sur « Configure » puis « Settings » phpstorm settings
  3. Accédez ensuite à la section « Languages & Frameworks » puis « PHP » et fixez la version du langage ainsi que le chemin vers l'interpréteur phpstorm PHP language level

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
  1. 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 » phpstorm PHP code template
  2. Ajoutez
    
    declare(strict_types=1);
    phpstorm PHP code template
  3. 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
  1. Téléchargez le fichier idea.properties et enregistrez-le à la racine de votre compte
  2. (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).

La configuration est complètement appliquée après un redémarrage de la session de l'utilisateur (il faut se déconnecter et se reconnecter).

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
  1. Si ce n'est pas déjà fait, installez Composer à l'aide du tutoriel dédié
  2. Cherchez le nom du paquet correspondant à CS Fixer avec :
    composer search cs-fixer
  3. Lancez l'installation de PHP CS Fixer en utilisant la commande require combinée à l'option --dev de composer :
    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
    
  4. Observez le contenu du répertoire vendor/bin
  5. Rendez-vous dans les préférences de PhpStorm dans « Languages & Frameworks → PHP → Quality Tools » configuration phpstorm
  6. Lancez la configuration de PHP CS Fixer configuration phpstorm
  7. Recherchez l'exécutable php-cs-fixer dans vendor/bin dans votre projet configuration phpstorm
    Remarque importante

    Sur Windows, vous devez rechercher l'exécutable php-cs-fixer.bat

  8. Vérifiez le bon fonctionnement de php-cs-fixer en appuyant sur le bouton « Validate » configuration phpstorm
  9. Si tout est correct, vous devez observer un message en bas de la fenêtre configuration phpstorm
    Remarque importante

    Le paramètre « Tool process timeout, sec [1…30] » donne le temps d'attente au-delà duquel PhpStorm considère que PHP 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.

  10. Activez PHP CS Fixer configuration phpstorm
  11. Choisissez le jeu de règles qui correspond au style de codage désiré (« Symfony », « PSR-12 », « Custom », …) configuration phpstorm

Mess Detector

Travail à réaliser
  1. Cherchez le nom du paquet correspondant à « PHPMD » avec :
    composer search phpmd
  2. Lancez l'installation de PHPMD en utilisant la commande require combinée à l'option --dev de composer :
    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
    
  3. Observez le contenu du répertoire vendor/bin
    Remarque importante

    Un 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
  4. Copiez à la racine de votre projet le fichier de configuration (télécharger) de PHP Depend qui est utilisé par Mess Detector
    Remarque importante

    Cette 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é en NFS, ce qui ralentit considérablement le temps d'analyse des fichiers du projet.

  5. Configurez Mess Detector dans PhpStorm, de manière similaire à PHP CS Fixer configuration phpstorm
  6. Lancez la configuration de Mess Detector configuration phpstorm
  7. Recherchez l'exécutable phpmd dans vendor/bin dans votre projet configuration phpstorm
    Remarque importante

    Sur Windows, vous devez rechercher l'exécutable phpmd.bat

  8. Vérifiez le bon fonctionnement de phpmd en appuyant sur le bouton « Validate » configuration phpstorm
  9. Si tout est correct, vous devez observer un message en bas de la fenêtre configuration phpstorm
    Remarque importante

    Le paramètre « Tool process timeout, sec [1…30] » donne le temps d'attente au delà duquel PhpStorm considère que Mess Detector doit être arrêté lors d'une analyse de votre code. Si votre machine est un peu lente, vous devriez augmenter la valeur.

  10. Activez PHP MD configuration phpstorm
  11. Cochez toutes les options pour les activer configuration phpstorm
  12. 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
  1. Ouvrez les préférences de PhpStorm
  2. Allez dans la section « Editor » puis « Proofreading » phpstorm spelling
  3. Localisez le bouton « + » phpstorm spelling
  4. Sélectionnez les langues naturelles utiles phpstorm spelling
  5. La configuration est terminée phpstorm spelling

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 : phpstorm-builtin-functions-not-recognized

Travail à réaliser
  1. Fermez PhpStorm
  2. 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
  3. 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
  1. Ouvrez les préférences de PhpStorm (CTRL+ALT+S)
  2. Dirigez-vous vers la section « Tools » puis « Terminal » phpstorm configure terminal
  3. Modifiez le chemin « Shell path » pour désigner bash avec les options nécessaires : « C:\Program Files\Git\bin\bash.exe --login -i » phpstorm configure terminal
  4. 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 : phpstorm configure terminal Le fond vert est tout juste assez soutenu : phpstorm configure terminal

Travail à réaliser
  1. Ouvrez les préférences de PhpStorm (CTRL+ALT+S)
  2. Dirigez-vous vers la section « Editor », « Color Scheme » puis « Console Colors » phpstorm configure terminal
  3. Recherchez « Black » dans « ANSI Colors » pour constater que le noir ne l'est pas vraiement : phpstorm configure terminal
  4. Corrigez la valeur du noir  phpstorm configure terminal
  5. Procédez de manière similaire pour le blanc qui doit s'approcher de FFFFFF
  6. Foncez un peu le rouge avec la valeur C030303
  7. Notez que vous pouvez exporter ces préférences de couleurs : phpstorm configure terminal