Php:ide

De Les Tutoriaux du WebMestre
Aller à : navigation, rechercher

Les IDEs traditionnels

Eclipse PHP

NetBeans

Nouveau les éditeurs / IDE

  • Il sont en général écrit en NodeJS

Visual Studio Code

Installation par l'ajout de sources Microsoft

  • à préférer à l'installation du paquet deb .
  • La raison principale en est la mise à jour automatique du logiciel lors des mises à jour système
    • l'installation via les source Microsoft permet une mise à jour automatique du studio lors d'un apt upgrade général
  • cf. https://code.visualstudio.com/docs/setup/linux on va d'abord mettre en place la source logicielle pour Visual Studio code:
#on récupère la clé Gnu Privacy Guard associée aux sources de Microsoft pour apt
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   983  100   983    0     0   3909      0 --:--:-- --:--:-- --:--:--  3900
#on déplace cette clé au niveau des clés dont a besoin apt pour authentifier ses sources
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
[sudo] Mot de passe de jpmena :
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo chown root:root /etc/apt/trusted.gpg.d/*.gpg
## ce qui donne
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ ls -ltr /etc/apt/trusted.gpg.d/*.gpg
-rw-r--r-- 1 root root 507 déc.  28 11:16 /etc/apt/trusted.gpg.d/webupd8team_ubuntu_atom.gpg
-rw-r--r-- 1 root root 362 mars  23 09:50 /etc/apt/trusted.gpg.d/cinelerra-ppa_ubuntu_ppa.gpg
-rw-rw-r-- 1 root root 641 mai   19 09:21 /etc/apt/trusted.gpg.d/microsoft.gpg
#on génère la nouvelle source logicielle pour apt
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
## on a bien créé un fichier vscode.list au niveau des sources logicielles pour apt
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ ls -ltr /etc/apt/sources.list.d/
total 24
-rw-r--r-- 1 root root 136 mars  23 09:50 webupd8team-ubuntu-atom-xenial.list.save
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list.save
-rw-r--r-- 1 root root 136 mars  23 09:50 webupd8team-ubuntu-atom-xenial.list
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list
-rw-r--r-- 1 root root 138 mars  23 09:50 cinelerra-ppa-ubuntu-ppa-xenial.list
-rw-r--r-- 1 root root  73 mai   19 09:24 vscode.list
## et il contient bien le lien http vers les paquets microsoft pour VisualStudio Code
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ cat /etc/apt/sources.list.d/vscode.list 
deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main
  • Installer le logiciel Microsoft Studio Code
    • après avoir demandé la prise en compte des nouvelles sources Microsoft
    • son nom apt est code
#demande de prise en compte des nouvelles sources Microsoft:
## la réception 9 et 10 ci dessous montre la prise en compte de ces sources
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo apt update
Atteint:1 http://fr.archive.ubuntu.com/ubuntu xenial InRelease
Atteint:2 http://archive.canonical.com/ubuntu xenial InRelease                                                                            
Atteint:3 http://ppa.launchpad.net/cinelerra-ppa/ppa/ubuntu xenial InRelease                                                              
Atteint:4 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease                                                            
Atteint:5 http://ppa.launchpad.net/webupd8team/atom/ubuntu xenial InRelease                                                       
Atteint:6 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease                        
Réception de:7 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]             
Atteint:8 https://apt.dockerproject.org/repo ubuntu-xenial InRelease
Réception de:9 https://packages.microsoft.com/repos/vscode stable InRelease [2 802 B]
Réception de:10 https://packages.microsoft.com/repos/vscode stable/main amd64 Packages [12,7 kB]
118 ko réceptionnés en 0s (230 ko/s)   
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
All packages are up to date.
#l'installation à proprement parler le nom apt de Visual Studio code est code
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo apt install code
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
  code
0 mis à jour, 1 nouvellement installés, 0 à enlever et 6 non mis à jour.
Il est nécessaire de prendre 40,6 Mo dans les archives.
Après cette opération, 187 Mo d'espace disque supplémentaires seront utilisés.
Réception de:1 https://packages.microsoft.com/repos/vscode stable/main amd64 code amd64 1.12.2-1494422229 [40,6 MB]
40,6 Mo réceptionnés en 30s (1 346 ko/s)                                                                                                                                                      
Sélection du paquet code précédemment désélectionné.
(Lecture de la base de données... 307820 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../code_1.12.2-1494422229_amd64.deb ...
Dépaquetage de code (1.12.2-1494422229) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.22-1ubuntu5.1) ...
Traitement des actions différées (« triggers ») pour bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-6ubuntu3.1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.59ubuntu1) ...
Paramétrage de code (1.12.2-1494422229) ...

Désinstallation

  • La désinstallation se fera en supprimant le paquet code les 2 fichiers créés puis un update des listes de sources avant un upgrade !!!
  • on retire l'application:
#désintallation du logiciel
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo apt remove code
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  code
0 mis à jour, 0 nouvellement installés, 1 à enlever et 6 non mis à jour.
Après cette opération, 187 Mo d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] O
(Lecture de la base de données... 313181 fichiers et répertoires déjà installés.)
Suppression de code (1.12.2-1494422229) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.22-1ubuntu5.1) ...
Traitement des actions différées (« triggers ») pour bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-6ubuntu3.1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.59ubuntu1) ...
#y a t'il des logiciels dépendants dont personne n'a plus besoin?
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo apt autoremove
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 6 non mis à jour.
  • on supprime la source Microsoft pour apt et la clé Gnu Privacy guard associée:
    • ensuite on remettra à jour la liste des paqets connus du système (puisqu'il ne doit plus y avoir les paquets Microsoft)
#on supprime la référence aux sources Microsoft our Visual Studio Code
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo rm /etc/apt/sources.list.d/vscode.list
#on supprime aussi la clé de cryptage qui permet d'authentifier les sources ci dessus
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo rm /etc/apt/trusted.gpg.d/microsoft.gpg
#on met à jour la liste des paquets connus du système:
##on voit bien que les source Microsoft ne sont plus prises en compte ...
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ sudo apt update
Réception de:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Atteint:2 http://archive.canonical.com/ubuntu xenial InRelease                                                                          
Atteint:3 http://fr.archive.ubuntu.com/ubuntu xenial InRelease                                                                          
Atteint:4 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease                                                           
Atteint:5 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease                                                         
Atteint:6 http://ppa.launchpad.net/cinelerra-ppa/ppa/ubuntu xenial InRelease                    
Atteint:7 http://ppa.launchpad.net/webupd8team/atom/ubuntu xenial InRelease
Atteint:8 https://apt.dockerproject.org/repo ubuntu-xenial InRelease
102 ko réceptionnés en 0s (249 ko/s)
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
6 packages can be upgraded. Run 'apt list --upgradable' to see them.

Ajout d'extensions pour Visual Studio code

Directement en ligne de commande

  • méthode à préférer quand on passe par un proxy.
    • en effet la commande code s'appuie sur les variables d'environnement telles http_proxy
  • Les extensions vont s'installer sous ~/.vscode/extensions:
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ ll .vscode/extensions/
total 8
drwxrwxr-x 2 jpmena jpmena 4096 mai   19 10:24 ./
drwxrwxr-x 3 jpmena jpmena 4096 mai   19 10:24 ../
  • Il nous faut d'abord repérer le groupe et l'identifiant du paquet:
Récupérer le groupe et l'identifiant du paquet
 1 {
 2   "name": "php-debug",
 3   "displayName": "PHP Debug",
 4   "version": "1.10.0",
 5   "publisher": "felixfbecker",
 6   "license": "MIT",
 7   "description": "Debug support for PHP with XDebug",
 8   "keywords": [
 9     "php",
10     "debug",
11     "xdebug"
12   ],
  • on récupère:
    • ligne 5: l'information sur le publisher, dans notre cas: felixfbecker
    • ligne 2: le nom machine du projet, dans notre cas: php-debug
  • le nom machine paquet à installer via la ligne de commande sera: felixfbecker.php-debug
L'installation de l'extension via la ligne de commande
  • plus d'information sur les commandes associées à Visual Studio Code / code:
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ code --help
Visual Studio Code 1.12.2

Usage: code [options] [paths...]

Options:
  -d, --diff                  Open a diff editor. Requires to pass two file paths as arguments.
  -g, --goto                  Open the file at path at the line and character (add :line[:character] to path).
  --locale <locale>           The locale to use (e.g. en-US or zh-TW).
  -n, --new-window            Force a new instance of Code.
  -p, --performance           Start with the 'Developer: Startup Performance' command enabled.
  --prof-startup              Run CPU profiler during startup
  -r, --reuse-window          Force opening a file or folder in the last active window.
  --user-data-dir <dir>       Specifies the directory that user data is kept in, useful when running as root.
  --verbose                   Print verbose output (implies --wait).
  -w, --wait                  Wait for the window to be closed before returning.
  --extensions-dir <dir>      Set the root path for extensions.
  --list-extensions           List the installed extensions.
  --show-versions             Show versions of installed extensions, when using --list-extension.
  --install-extension <ext>   Installs an extension.
  --uninstall-extension <ext> Uninstalls an extension.
  --enable-proposed-api <ext> Enables proposed api features for an extension.
  --disable-extensions        Disable all installed extensions.
  --disable-gpu               Disable GPU hardware acceleration.
  -v, --version               Print version.
  -h, --help                  Print usage.
  • pour installer mon extension felixfbecker.php-debug la commande sera:
#installation de l'extension
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ code --install-extension felixfbecker.php-debug
Found 'felixfbecker.php-debug' in the marketplace.
Installing...
Extension 'felixfbecker.php-debug' v1.10.0 was successfully installed!
#vérification des extensions installée par la commande code
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ code --list-extensions
felixfbecker.php-debug
##vérification des extensions installée via le système de fichiers
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ ll .vscode/extensions/
total 12
drwxrwxr-x 3 jpmena jpmena 4096 mai   19 10:52 ./
drwxrwxr-x 3 jpmena jpmena 4096 mai   19 10:24 ../
drwxrwxr-x 6 jpmena jpmena 4096 mai   19 10:52 felixfbecker.php-debug-1.10.0/
  • Dans le cas de l'accès internet via un proxy d'entreprise, la définition des variables d'environnement http_proxy
    • permet la récupération des paquets. Dans notre cas le fichier ~/.profile contient:
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ tail -8 .profile
#le proxy DGFIP
##certains utilitaires prennent la version avec minuscule d'autres la version avec majuscule
export http_proxy='http://proxy.montentreprise:xxxx'    
export https_proxy=$http_proxy
export no_proxy="*.mondomaine,127.0.0.1"
export HTTP_PROXY=$http_proxy  
export HTTPS_PROXY=$HTTP_PROXY
export NO_PROXY=$no_proxy

Débogage du PHP en pas à pas sous Visual Studio Code

Prerequis
Passage en pas à pas sur du php serveur Apache
Configurer l'extension php-debug juste installée
  • Créer le fichier de configuration de debugging PHP pour cela
    • lancer le Débogage en allant sur Déboguer / Démarrer le Débogage (ou F5) sélectionner PHP
    • un nouveau fichier apparaît dans le Workspace:
jpmena@jpmena-HP-ProDesk-600-G2-MT ~/Consultant/jpmena/.vscode (master=) $ ll
total 12
drwxrwxr-x  2 jpmena jpmena 4096 mai   23 11:27 ./
drwxrwxr-x 14 jpmena jpmena 4096 mai   23 11:27 ../
-rw-rw-r--  1 jpmena jpmena  432 mai   23 11:27 launch.json
  • Les paramètres autorisés sont détaillés dans la documentation du projet GitHub
    • Le fichier automatiquement créé par Visual studio code contient déjà:
      • ligne 4 à 9: configuration serveur apache
      • ligne 10 à 17 : configuration client php !!!
 1 {
 2     "version": "0.2.0",
 3     "configurations": [
 4         {
 5             "name": "Listen for XDebug",
 6             "type": "php",
 7             "request": "launch",
 8             "port": 9000
 9         },
10         {
11             "name": "Launch currently open script",
12             "type": "php",
13             "request": "launch",
14             "program": "${file}",
15             "cwd": "${fileDirname}",
16             "port": 9000
17         }
18     ]
19 }
  • idées:
    • passer du port 9000 au port 10000 après avoir modifié la configuration php-xdegug du LAMP
    • piloter l'extranet du RIF qui tourne sur une machine virtuelle Debian serverSourceRoot versus localSourceRoot cf. [1]
Ajouter une extension XDebug à votre navigateur
  • Pour Firefox, le site recommande l'extension the Easiest XDebug
    • une fois installée une icône en forme de coccinelle s'affiche au niveau des boutons de raccourcis en haut et droite du navigateur Firefox
  • Pour Chrome/Chromium, le site recommande XDebug Helper
    • TODO explication sur l'usage ...
Démarrer le Debuging
  • Seules conditions (mais toutes doivent être remplies):
    • Côté Visual Studio Code:
      • poser un point d'arrêt : cliquer à droite de la ligne, un point rouge apparaît
      • lancer le Debugging: menu Deboguer / Démarrer le Débogage ou simplement la touche F5
    • Côté navigateur FireFox:
      • Activer le Débogage apporté par l'extension the-easiest-xdebug
        • En cliquant notamment sur le raccourci (bouton en forme de Coccinelle)
      • (NB: Il semble que la clé de débogage n'ait pas d'effet sur le passage en pas à pas ...)
        • cette clé est acessible via Outils / Modules Complémentaires et sur la ligne de l'extension the Easiest Xdebug, cliquer sur le bouton Preférences
        • Dans mon cas cette IDE key for Remote Debugging est à netbeans-xdebug (imposée sûrement par Netbeans à l'époque où je débogais en php avec cet IDE)
  • Ci dessous, image d'un projet Drupal8 en cours de Debugging sur un fichier de preprocessing de Theming:
    • On voit dans la partie gauche la zone de Debugging ouverte (cf. F5 précédent) avec (de haut en bas):
      • la partie Variables (Variables en cours)
      • la partie Espion (expressions dont je demande le suivi)
      • La partie Pile des Appels (la pile d'appels sur laquelle le point d'arrêt nous a figé)
      • la partie Points d'arrêts (les chemins fichier + no de ligne des points d'arrêts en cours: une ligne par point d'arrêt)
        • Noter que l'on peut demander l'arrêt automatique sur les exceptions et les erreurs / warnings
    • On voit sur la partie basse / Onglet Console l'expression dont j'ai demandé à chaud l'évaluation:
      • une fois l'exécution figée, sélectionner du code et clic droit pui Evaluer cette expression

VSCODE DEBUG.jpg

Passage en pas à pas sur du client php

TODO cf. explications sur https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug

ATOM

Ressources

Installation du logiciel de base par l'ajout de sources Microsoft

  • à préférer à l'installation du paquet deb .
  • l'installation via les sources ATOM.io permet une mise à jour automatique du studio lors d'un apt upgrade général

Ajout des sources

  • cf [2], une seule commande qui ajoute à la fois et l'url des sources et la clé gpg correspondante:
root@jpmena-P34:/etc/apt# add-apt-repository ppa:webupd8team/atom
 PPA for Atom text editor: https://atom.io

Now available for both 32bit and 64bit!

More info, report packaging bugs, feedback, etc.: http://www.webupd8.org/2014/05/install-atom-text-editor-in-ubuntu-via-ppa.html

Report non-packaging Atom bugs here: https://github.com/atom/atom/issues
 Plus d’info : https://launchpad.net/~webupd8team/+archive/ubuntu/atom
Appuyez sur [ENTRÉE] pour continuer ou Ctrl-C pour annuler l’ajout #je tape entrée/return

gpg: le porte-clefs « /tmp/tmp45kzioct/secring.gpg » a été créé
gpg: le porte-clefs « /tmp/tmp45kzioct/pubring.gpg » a été créé
gpg: demande de la clef EEA14886 sur le serveur hkp keyserver.ubuntu.com
gpg: /tmp/tmp45kzioct/trustdb.gpg : base de confiance créée
gpg: clef EEA14886 : clef publique « Launchpad VLC » importée
gpg: aucune clef de confiance ultime n'a été trouvée
gpg: Quantité totale traitée : 1
gpg:               importées : 1  (RSA: 1)
OK
  • On voit que l'on a une nouvelle clé et une nouvelle url de sources:
#on voit la nouvelle clé
root@jpmena-P34:/etc/apt# ls -ltr trusted.gpg.d/ | tail -2
-rw-r--r-- 1 root root    0 mai   20 17:13 webupd8team_ubuntu_atom.gpg~
-rw-r--r-- 1 root root  507 mai   20 17:13 webupd8team_ubuntu_atom.gpg
#on voit la nouvelle source
root@jpmena-P34:/etc/apt# ls -ltr sources.list.d | grep -i web
-rw-r--r-- 1 root root 136 mai   20 17:13 webupd8team-ubuntu-atom-xenial.list
#l'url correspondante est:
deb http://ppa.launchpad.net/webupd8team/atom/ubuntu xenial main
# deb-src http://ppa.launchpad.net/webupd8team/atom/ubuntu xenial main

Installation du paquet atom à partir des sources

  • Une seule commande pour récupérer les 70Mo du logiciel de base:
root@jpmena-P34:/etc/apt# apt install atom
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libgles1-mesa libopenshot-audio3 linux-headers-4.4.0-72 linux-headers-4.4.0-72-generic linux-image-4.4.0-72-generic linux-image-extra-4.4.0-72-generic
Veuillez utiliser « apt autoremove » pour les supprimer.
Les NOUVEAUX paquets suivants seront installés :
  atom
0 mis à jour, 1 nouvellement installés, 0 à enlever et 45 non mis à jour.
Il est nécessaire de prendre 70,7 Mo dans les archives.
Après cette opération, 70,7 Mo d'espace disque supplémentaires seront utilisés.
Réception de:1 http://ppa.launchpad.net/webupd8team/atom/ubuntu xenial/main amd64 atom amd64 1.17.0-1~webupd8~0 [70,7 MB]
70,7 Mo réceptionnés en 44s (1 591 ko/s)                                                                                                                                                                            
Sélection du paquet atom précédemment désélectionné.
(Lecture de la base de données... 353992 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../atom_1.17.0-1~webupd8~0_amd64.deb ...
Dépaquetage de atom (1.17.0-1~webupd8~0) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.22-1ubuntu5.1) ...
Traitement des actions différées (« triggers ») pour bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-6ubuntu3.1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.59ubuntu1) ...
Traitement des actions différées (« triggers ») pour hicolor-icon-theme (0.15-0ubuntu1) ...
Paramétrage de atom (1.17.0-1~webupd8~0) ...

Ajout d'extensions ATOM

  • Suite au premier démarrage de Atom le répertoire des extensions pour l'utilisateur courant est vide
jpmena@jpmena-P34:~$ ls -ltr .atom/packages/
total 4
-rw-rw-r-- 1 jpmena jpmena 60 mai   20 17:25 README.md
#comment fonctionne la commande install du atom package manager ?
jpmena@jpmena-P34:~$ apm help install

Usage: apm install [<package_name>...]
       apm install <package_name>@<package_version>
       apm install <git_remote>
       apm install <github_username>/<github_project>
       apm install --packages-file my-packages.txt
       apm i (with any of the previous argument usage)

Install the given Atom package to ~/.atom/packages/<package_name>.

If no package name is given then all the dependencies in the package.json
file are installed to the node_modules folder in the current working
directory.

A packages file can be specified that is a newline separated list of
package names to install with optional versions using the
`package-name@version` syntax.

Options:
  --check           Check that native build tools are installed                            [booléen]
  --verbose         Show verbose debug information                         [booléen] [défaut: false]
  --packages-file   A text file containing the packages to install             [chaine de caractère]
  --production      Do not install dev dependencies                                        [booléen]
  -c, --compatible  Only install packages/themes compatible with this Atom version
                                                                               [chaine de caractère]
  -h, --help        Print this usage message
  -s, --silent      Set the npm log level to silent                                        [booléen]
  -q, --quiet       Set the npm log level to warn                                          [booléen]

  Prefix an option with `no-` to set it to false such as --no-color to disable
  colored output.
#l'installation elle même de l'extension pour debugging php
jpmena@jpmena-P34:~$ apm install php-debug
Installing php-debug to /home/jpmena/.atom/packages ✓
#des icônes associés aux fichiers 
jpmena@jpmena-P34:~$ apm install file-icons 
Installing file-icons to /home/jpmena/.atom/packages ✓
#on retrouve bien les extensions dans mon répertoire utilisateur
jpmena@jpmena-P34:~$ ls -ltr /home/jpmena/.atom/packages
total 12
-rw-rw-r--  1 jpmena jpmena   60 mai   20 17:25 README.md
drwxrwxr-x 10 jpmena jpmena 4096 mai   20 17:35 php-debug
drwxrwxr-x  7 jpmena jpmena 4096 mai   20 17:38 file-icons

Utilisation de l'extension php debug et passage du PHP en pas à pas sous ATOM

Prérequis

Passage en pas à pas php sous ATOM pour du code exécute sur un serveur Apache

  • cf. explication donné par le fichier fichier README.md
    • présent à la racone du code source de l'extension
Configurer l'extension php-debug juste installée
  • Trouver le fichier config.cson qui contient le paramétrage à vérifier/modifier cf. []
    • cf. ci dessous, notre paramétrage particulier ira dans un fichier atom/packages/php-debug/config.cson
jpmena@jpmena-HP-ProDesk-600-G2-MT ~ $ find .atom/ -name "config.cson"
.atom/config.cson
.atom/packages/file-icons/config.cson
  • TODO: proposer une configuration spécifique dans un fichier atom/packages/php-debug/config.cson:
"php-debug":
  {
    ServerPort: 10000
    PathMaps: [
      "remotepath;localpath"
      "/base/path/on/remote/system;C:\\base\\path\\on\\local\\system"
    ]
  }
  • idées:
    • passer du port 9000 au port 10000 après avoir modifié la configuration php-xdegug du LAMP
    • piloter l'extranet du RIF qui tourne sur une machine virtuelle Debian remotepath;localpath
Ajouter une extension XDebug à votre navigateur
  • Pour Firefox, le site recommande l'extension the Easiest XDebug
    • une fois installée une icône en forme de coccinelle s'affiche au niveau des boutons de raccourcis en haut et droite du navigateur Firefox
  • Pour Chrome/Chromium, le site recommande XDebug Helper
    • TODO explication sur l'usage ...
Démarrer le Debuging
  • Seules conditions (mais toutes doivent être remplies):
    • Côté ATOM:
      • poser un point d'arrêt : Packages -> Php-Debug -> Toggle Breakpoint ou ALT+F9
      • ouvrir la fenêtre console de Debugging Packages -> Php-Debug -> Toggle Debugging ou ALT+Ctrl+D ou cliquer le bouton en bas et gauche PHP Debug (icône d'un insecte)
    • Côté navigateur FireFox:
      • Activer le Débogage apporté par l'extension the-easiest-xdebug
        • En cliquant notamment sur le raccourci (bouton en forme de Coccinelle)
      • (NB: Il semble que la clé de débogage n'ait pas d'effet sur le passage en pas à pas ...)
        • cette clé est acessible via Outils / Modules Complémentaires et sur la ligne de l'extension the Easiest Xdebug, cliquer sur le bouton Preférences
        • Dans mon cas cette IDE key for Remote Debugging est à netbeans-xdebug (imposée sûrement par Netbeans à l'époque où je débogais en php avec cet IDE)
  • Ce dessous, image d'un projet Drupal8 en cours de Debugging sur un fichier de preprocessing de Theming:
    • On voit dans la partie basse la zone de Debugging ouverte (cf. ALT+Ctrl+D précédent) en bas avec
      • La partie Stack (la pile d'appels sur laquelle le point d'arrêt nous a figé)
      • la partie Content (Variables en cours)
      • la partie Watch (expressions dont je demande le suivi)
      • la partie Breakpoints (les chemins fichier + no de ligne des points d'arrêts en cours: une ligne par point d'arrêt)

ATOM DEBUG.jpg

Suppression du logiciel ATOM et de ses sources

Suppression du logiciel

  • une seule commande en root:
    • ne pas oublier l'option purge pour suppression également des fichiers de configuration
root@jpmena-HP-ProDesk-600-G2-MT:~# apt remove atom --purge
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  atom*
0 mis à jour, 0 nouvellement installés, 1 à enlever et 4 non mis à jour.
Après cette opération, 70,7 Mo d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] O
(Lecture de la base de données... 313181 fichiers et répertoires déjà installés.)
Suppression de atom (1.17.0-1~webupd8~0) ...
Purge des fichiers de configuration de atom (1.17.0-1~webupd8~0) ...
Traitement des actions différées (« triggers ») pour hicolor-icon-theme (0.15-0ubuntu1) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.22-1ubuntu5.1) ...
Traitement des actions différées (« triggers ») pour bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-6ubuntu3.1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.59ubuntu1) ...

Suppression des extensions (root)

  • suppression du répertoire local de configuration de atom
root@jpmena-HP-ProDesk-600-G2-MT:~# rm -rf /home/jpmena/.atom/

suppression des sources du logiciel (root)

  • suppression de la clé d'authentification du dépôt de sources
root@jpmena-HP-ProDesk-600-G2-MT:~# cd /etc/apt/trusted.gpg.d/
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/trusted.gpg.d# ls -ltr
total 12
-rw-r--r-- 1 root root   0 déc.  28 11:16 webupd8team_ubuntu_atom.gpg~
-rw-r--r-- 1 root root 507 déc.  28 11:16 webupd8team_ubuntu_atom.gpg
-rw-r--r-- 1 root root   0 mars  23 09:50 cinelerra-ppa_ubuntu_ppa.gpg~
-rw-r--r-- 1 root root 362 mars  23 09:50 cinelerra-ppa_ubuntu_ppa.gpg
-rw-rw-r-- 1 root root 641 mai   19 10:16 microsoft.gpg
#on supprime les clés GPG (Gnu Privacy Guard) relatives à ATOM
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/trusted.gpg.d# rm webupd8team_ubuntu_atom.gpg*
#on vérifie bien qu'elles ont été supprimées
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/trusted.gpg.d# ls -ltr
total 8
-rw-r--r-- 1 root root   0 mars  23 09:50 cinelerra-ppa_ubuntu_ppa.gpg~
-rw-r--r-- 1 root root 362 mars  23 09:50 cinelerra-ppa_ubuntu_ppa.gpg
-rw-rw-r-- 1 root root 641 mai   19 10:16 microsoft.gpg
  • supression de du dépôt de sources
root@jpmena-HP-ProDesk-600-G2-MT:~# cd /etc/apt/sources.list.d/
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/sources.list.d# ls -ltr
total 24
-rw-r--r-- 1 root root 136 mars  23 09:50 webupd8team-ubuntu-atom-xenial.list.save
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list.save
-rw-r--r-- 1 root root 136 mars  23 09:50 webupd8team-ubuntu-atom-xenial.list
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list
-rw-r--r-- 1 root root 138 mars  23 09:50 cinelerra-ppa-ubuntu-ppa-xenial.list
-rw-r--r-- 1 root root  73 mai   19 10:17 vscode.list
#on supprime les dépôts relatifs à ATOM
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/sources.list.d# rm webupd8team-ubuntu-atom-xenial.list*
#on vérifie qu'ils ont bien été supprimés
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/sources.list.d# ls -ltr
total 16
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list.save
-rw-r--r-- 1 root root  58 mars  23 09:50 docker.list
-rw-r--r-- 1 root root 138 mars  23 09:50 cinelerra-ppa-ubuntu-ppa-xenial.list
-rw-r--r-- 1 root root  73 mai   19 10:17 vscode.list
#on remet à jour la liste des paquets logiciels
##on voit dans la liste ci dessous qu'il ne va plus cherhcher sous webupd8team-ubuntu-atom-xenial 
root@jpmena-HP-ProDesk-600-G2-MT:/etc/apt/sources.list.d# apt update
Atteint:1 http://fr.archive.ubuntu.com/ubuntu xenial InRelease
Atteint:2 http://ppa.launchpad.net/cinelerra-ppa/ppa/ubuntu xenial InRelease                                                                                        
Atteint:3 http://archive.canonical.com/ubuntu xenial InRelease                                                                                                      
Atteint:4 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease                                                            
Atteint:5 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease                        
Réception de:6 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]             
Atteint:7 https://apt.dockerproject.org/repo ubuntu-xenial InRelease
Atteint:8 https://packages.microsoft.com/repos/vscode stable InRelease
Réception de:9 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [54,7 kB]
Réception de:10 http://security.ubuntu.com/ubuntu xenial-security/main DEP-11 64x64 Icons [45,7 kB]
Réception de:11 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [32,2 kB]
Réception de:12 http://security.ubuntu.com/ubuntu xenial-security/universe DEP-11 64x64 Icons [37,0 kB]
272 ko réceptionnés en 0s (285 ko/s)    
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
4 packages can be upgraded. Run 'apt list --upgradable' to see them.