Installation d'un environnement de développement / débogage (IDE) PHP/MySQL associé à un SE4 de test

Intérêt

L'utilisation d'un IDE facilite le développement d'applications (coloration syntaxique, auto-complétion de code, etc .. ) et associé à Xdebug, cela permet de faire du débogage de façon aisée et efficace.

Quelques exemples :

  • Mise en place de points d'arrêts

  • Visualisation de la valeur des variables

  • Exécution du script " pas à pas

  • Profilage (mesure de performance des scripts ).

Avec quel logiciel ?

C'est avant tout une histoire de goût. Il en existe deux principaux :

Les deux sont multiplate-forme et s'appuient sur un environnement Java pour fonctionner.

Principe du projet et interaction avec le serveur de test.

L'IDE va s'appuyer à la fois sur les sources PHP (issue du dépôt Git) mais également sur un serveur de développement sur lequel va s’exécuter le code. Ce serveur de développement pourra s'exécuter sur une machine virtuelle y compris sur un hôte différent que celui qui exécute l'IDE.

Au moment de sa première exécution, l'IDE va proposer :

  • de créer un nouveau projet

  • d'en ouvrir un existant

  • d'en importer d'une ancienne version

Configuration d'un projet sur Netbeans

Au moment de sa première exécution, Netbeans va proposer de créer un nouveau projet

Configuration du projet

netbeans1.png

  1. Nom du projet
  2. Chemin vers les sources
  3. Version de php

Interaction avec le serveur de développement Se4

Il s'agit d'indiquer la manière dont Netbeans va communiquer avec le serveur de développement.

netbeans2.png

  1. On indique que le serveur est distant
  2. On indique l'url du développement
  3. Indispensable : Il faudra configurer le mode de communication entre votre machine et le se4. Ce point est détaillé dans l'écran suivant de cette documentation.
  4. On choisit le moment où les fichiers sources modifiés seront envoyés au serveur de développement. Ici lors de l'enregistrement.

A ce stade il est indispensable, de configurer la liaison avec le serveur de développement. (bouton Manage)

Configuration de la connexion ssh avec le Se4

Il s'agit de renseigner les éléments utiles afin que la machine hébergeant les sources puisse envoyer les fichiers modifiés vers le serveur de développement.

netbeans3.png

  1. Adresse IP du SE4
  2. Nom de l'utilisateur de connexion : laisser root
  3. Saisir le mot de passe si la connexion ssh se fait par ce biais
  4. Indiquer le chemin vers la clé ssh public et le fichier known_hosts si la connexion ssh se fait par ce biais (alternative au mot de passe).
  5. Important : spécifier le chemin des sources php du serveur de développement. Donc forcément /var/www/sambaedu
  6. Possibilité de tester la connexion avant validation

Activation du débogage en direct

En plus de l'activation de Xdebug via l'interface, il vous faudra également déclarer l'adresse IP de la machine hébergeant Neatbeans dans le fichier de configuration de Xdebug sirtué quant à lui sur le Se4 de développement.

Il s'agit de la ligne xdebug.remote_host

Voici pour exemple le contenu du mien. Il est sans doute possible de le simplifier.

dim. nov. 03 23:47:04 root@se4fs.:

~# cat /etc/php/7.0/fpm/conf.d/20-xdebug.ini

zend_extension=xdebug.so

[debug]; Remote settingsxdebug.remote_autostart=off

xdebug.remote_enable=on

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=10.127.164.5

xdebug.remote_port=9000

; General

xdebug.auto_trace=off

xdebug.collect_includes=on

xdebug.collect_params=on

xdebug.collect_return=on

xdebug.default_enable=on

xdebug.extended_info=1

xdebug.manual_url=http://www.php.net

xdebug.show_local_vars=1

xdebug.show_mem_delta=1

xdebug.max_nesting_level=100

;xdebug.idekey=

; Trace optionsxdebug.trace_format=1

xdebug.trace_output_dir=/var/www/sambaedu/debug

xdebug.trace_options=1xdebug.trace_output_name=trace

; Profiling

xdebug.profiler_append=1

xdebug.profiler_enable=0

xdebug.profiler_enable_trigger=1

xdebug.profiler_output_dir=/var/www/sambaedu/debug

xdebug.profiler_output_name=cachegrind.out

xdebug.show_error_trace = 1

xdebug.collect_params = 3

Maintenant que tout est en place, On peut lancer le débogage.

Configuration du projet

netbeans4.png

  1. Nom du fichier php en exécution
  2. Saisir le mot de passe root si la connexion ssh se fait par ce biais
  3. Point d'arrêt sur lequel le script est pour le moment arrêté
  4. Affichage des variables en cours
  5. La variable $mp est un tableau indexé multi dimensionnels.

Ce qui est énorme

Avec la souris, survolez une variable simple dans le script ($login par exemple) et vous voyez sa valeur dans une "bulle".

Pour les variables plus complexes (indexées par exemple) ou les fonctions , il faut les surligner et placer le curseur dessus.

Clic droit sur une variable ou une fonction localise son utilisation ou sa déclaration dans tous les scripts du projet.

Dans le menu Versionning ->Local history, on peut voir toutes les versions enregistrées du fichier, ainsi que les diffs. Et bien sûr revenir à une version antérieure !

netbeans5.png