30 avril 2014

IntellijIDEA - Debug en PHP

Nous verrons comment activer le support de PHP dans IntellijIDEA et comment passer en mode DEBUG avec PHP sous IntellijIDEA.

Plugins Jetbrains pour PHP

Pour activer le support de PHP, il faut installer les plugins utilisés par PhpStorm depuis IntelijIdea :
  • Command Line Tool Support
  • Framework MVC Support
  • PHP

Serveur Apache, PHP et MySQL

  • Télécharger et Installer WAMP
  • Cliquer sur l'icône WAMP dans la barre des tâches pour afficher le menu de WAMP
  • Aller sur : PHP > php.ini
  • Activer le debug en saisissant dans le fichier php.ini :
    • xdebug.remote_enable = 1
    • xdebug.remote_handler = dbgp
    • xdebug.remote_port = 9000
    • xdebug.profiler_enable = 1
    • xdebug.profiler_enable_trigger = 1
  • Aller sur : Apache > Alias directory > Create an alias
  • Un terminal de saisie apparaît :
    • Nom de l'alias : Saisir le nom du projet
    • Répertoire : Saisir le chemin complet vers le répertoire Web du projet
  • Valider la création de l'alias
WAMP va redémarrer Apache et PHP.

IntellijIDEA : Configurer PHP

  • Dans IntellijIDEA
  • Menu : File > Settings
  • La fenêtre "Settings" apparaît
    • Sélectionner "PHP"
    • Saisir : 
      • PHP language level : Indiquer la version de PHP
      • Interpreter : Cliquer sur le bouton "..."
  • La fenêtre "Interpreters" apparaît :
    • Cliquer sur " + "
    • Saisir : 
      • Name : "PHP" suivi de la version
      • PHP Home : Cliquer sur "..." pour rechercher l'exécutable "php.exe".
        • Dans WAMP, il s'agit de "wamp\bin\php\php5.4.12"
    • Cliquer sur OK pour fermer la fenêtre "Interpreters"
  • Dans la fenêtre "Settings",
    • Cliquer "OK" pour valider et fermer la fenêtre

IntellijIDEA : PHP Remote Debug

  • Dans IntellijIDEA
  • Menu : Run > Edit configurations...
  • La fenêtre "Run/Debug Configurations" apparaît :
    • Cliquer sur " + "
    • Sélectionner "PHP Remote Debug"
      • Si "PHP Remote Debug" n'est pas visible, cliquer sur le texte en bas de la liste :
        • "N items more (irrelevant)..."
    • Cliquer sur "Single Instance Only"
    • Définir comme nom : le nom du projet suivi de " - Debug"
    • Cliquer sur le bouton "..." à droite du libellé "Servers"
  • La fenêtre "Servers" apparaît
    • Définir : 
      • Name : Apache
      • Host : localhost
      • Port : 80
      • Debugger : Xdebug
    • Cliquer sur "Variable remote environment"
  • La fenêtre "Variable Remote Environment" apparaît :
    • Cliquer sur le bouton "..." à droite de "Deployment server"
  • La fenêtre "Deployment" apparaît :
    • Cliquer sur " + "
  • La fenêtre "Add Server" apparaît :
    • Définir :
      • Name : Apache
      • Type : In place
    • Cliquer sur "OK" pour fermer la fenêtre "Add Server"
  • Dans la fenêtre "Deployment" : 
      • Onglet Mappings
        • Local path : Le chemin complet vers le répertoire Web du projet
        • Web path : Le symbole "/" suivi du nom de l'alias défini dans Apache (il s'agit normalement du nom du projet)
    • Fermer la fenêtre "Deployment" en cliquant sur "OK"
  • Dans la fenêtre "Validate Remote Environment" :
    • Dans le champ "Local path to create validation script", saisir le chemin complet vers le répertoire Web du projet
    • Cliquer sur "Validate"
      • Des messages de confirmation doivent apparaître,
        • "Loaded : Xdebug" indique que le Debug est activé au niveau de PHP
    • Cliquer sur "Cancel" pour fermer la fenêtre
  • Dans la fenêtre "Servers"
    • Cliquer sur "OK" pour valider et fermer la fenêtre
  • Dans la fenêtre "Run/Debug Configurations"
    • Dans le champ "Ide key / session id", saisir : XDEBUG_SESSION_START
    • Cliquer sur OK pour fermer la fenêtre
  • Dans IntellijIDEA :
    • Sélectionner "[nom du projet] - Debug"
    • Cliquer sur le bouton "Debug"
    • Menu : Run > Start Listen for PHP Debug Connections

IntellijIDEA : PHP Web Application

  • Dans IntellijIDEA
  • Menu : Run > Edit configurations...
  • La fenêtre "Run/Debug Configurations" apparaît :
    • Cliquer sur " + "
    • Sélectionner "PHP Web Application"
    • Cliquer sur "Single Instance Only"
    • Définir comme nom : le nom du projet suivi de " - Go"
    • Indiquer le même serveur que pour "PHP Remote Debug"
    • Indiquer l'URI vers la page principale de l'application
      • il s'agit de "/", suivi du nom de l'alias dans Apache, suivi du chemin et du nom de la page php principale à partir du répertoire Web du projet
    • Indiquer le navigateur cible
    • Cliquer sur OK pour fermer la fenêtre

Test

  • Définir un point d'arrêt dans le code.
  • Ne pas oublier de cliquer sur :
    • Menu : Run > Start Listen for PHP Debug Connections
  • Dans IntellijIDEA,
    • sélectionner "[nom du projet] - Go"
    • appuyer sur le bouton "Debug"
Le navigateur se lance avec dans l'URL le paramètre XDEBUG_SESSION_START.

Naviguer dans l'application à l'aide du navigateur qui a été ouvert par IntellijIDEA (ne pas ouvrir soi-même le navigateur).

IntellijIDEA devrait s'arrêter sur ce point d'arrêt.