Ouvrir directement les fichiers sources

Astuce très utile permettant d'ouvrir directement les fichiers concernés dans le profiler Symfony dans votre IDE préféré.

Configurer php

Configurer Xdebug pour que les liens de fichiers (utilisés par le debugger Symfony) soient ouvert via une url spécifique.

Dans le fichier de configuration /etc/php/7.0/conf.d/20-xdebug.ini, ajouter (ou modifiez si déjà présent)

xdebug.file_link_format = 'ide://%f:%l'

Cela générera des liens de ce type :

ide://YOUR_PROJECT_PATH/index.php:65

Ajouter l'URL handler

Votre environnement de bureau doit savoir comment gérer ce nouveau protocole.

Pour gnome, cherchez où se trouve le fichier mimeapps.list

find ~/ -name mimeapps.list
/home/PapsOu/.config/mimeapps.list

Éditez-le et ajoutez l'entrée suivante :

[Added Associations]
x-scheme-handler/ide=ide-handler.desktop;

La chaîne doit commencer par x-scheme-handler/ suivi du nom de protocole personnalisé.

Fichier .desktop

Créez le fichier desktop qui se chargera de lancer le un script correspondant au protocole personnalisé.

nano ~/.local/share/applications/ide-handler.desktop
[Desktop Entry]
Version=1.0
Type=Application
Exec=/PATH_TO_YOUR_IDE_SCRIPT/run-ide.sh %u
StartupNotify=false
Terminal=false
Categories=Utility;
MimeType=x-scheme-handler/ide
Name=IDE quick open
Comment=Launch IDE

Ne pas oublier un chmod +x sur ce fichier pour qu'il soit exécutable.

Script de lancement d'IDE

Créez le script qui sera exécuté lors des clics sur ces liens.

Mettez-le où bon vous semble, adaptez simplement la ligne Exec du fichier .desktop précédent.

run-ide.sh :

#!/bin/bash

# Strip de la partie « ide:// » de l'url
url="${1:6}"

# Atom
# /bin/atom ${fileName}:${lineNumber}

# Netbeans
# /bin/netbeans $url

# VSCode
/usr/bin/code -g ${fileName}:${lineNumber}:0

Appliquer les changements

Redémarrez votre navigateur et gnome (Alt + F2 puis R) et le clic sur un lien de fichier du debugger ouvrira votre IDE avec le fichier et placera le curseur à la ligne correspondante.

(Optionnel) Configurer Firefox

Si Firefox n'arrive pas à associer les liens ide:// à votre script, il est peut être nécessaire de modifier sa configuration.

Ajouter les entrées suivantes dans about:config pour que Firefox sache que ce protocole nouvellement créé existe.

network.protocol-handler.expose.ide: false
network.protocol-handler.external.ide: true
network.protocol-handler.warn-external.ide: false