Installation d'un environnement de développement / débogage (IDE) PHP/MySQL associé à un SE4 de test
RéglementaireInté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 :
- Netbeans : https://netbeans.apache.org/download/index.html
- Eclipse : https://www.eclipse.org/downloads/
Les deux sont multiplate-forme et s'appuient sur un environnement Java pour fonctionner.
RéglementairePrincipe 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
ExempleConfiguration d'un projet sur Netbeans⚓
Au moment de sa première exécution, Netbeans va proposer de créer un nouveau projet
ÉcranInteraction 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.
Attention
A ce stade il est indispensable, de configurer la liaison avec le serveur de développement. (bouton Manage
)
ÉcranConfiguration 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.
- 1⚓
Adresse IP du SE4
- 2⚓
Nom de l'utilisateur de connexion : laisser root
- 3⚓
Saisir le mot de passe root 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
Truc & astuceActivation 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
Exemple
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
Truc & astuceUtilisation du⚓
Maintenant que tout est en place, On peut lancer le débogage.
ÉcranConfiguration du projet⚓
ConseilCe 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 !