Кликабельные имена функций и стека вызова

Query Monitor

В большинстве панелей Query Monitor отображаются имена функций и стек их вызова. Было бы круто, щёлкнув по имени функции, открыть файл в вашем текстовом редакторе или IDE в нужном месте, не правда ли? Это возможно!

Чтобы включить данный функционал, нужно сделать два шага.

Шаг 1. Настроить обработчик ссылок в редакторе

Чтобы ваш редактор мог открывать файлы по ссылкам, необходимо его настроить. Каждый редактор имеет свою схему URL.

Вот инструкции для некоторых распространенных редакторов:

PhpStorm

Ничего не требуется. PhpStorm сразу поддерживает схему phpstorm://

VS Code

Ничего не требуется. VS Code сразу поддерживает схему code://.

Atom

Нужно установить пакет Atom Open, чтобы включить поддержку схемы atom://.

Sublime Text

Нужно установить пакет subl-handler, чтобы включить поддержку схемы subl://.

Netbeans

Следуйте инструкциям данной статьи, чтобы добавить поддержку схемы nbopen://.

Шаг 2. Включить кликабельные ссылки

Кликабельные ссылки на файлы включаются через фильтр qm/output/file_link_format.

Фильтр должен возвращать формат ссылки, который поддерживает ваш редактор кода. Как видно выше у разных редакторов разные схемы URL, обязательно имейте это ввиду.

Код ниже рекомендуется оформлять как mu-плагин.

PhpStorm

add_filter( 'qm/output/file_link_format', function( $format ) {
	return 'phpstorm://open?file=%f&line=%l';
} );

VS Code

add_filter( 'qm/output/file_link_format', function( $format ) {
	return 'vscode://file/%f:%l';
} );

Atom

add_filter( 'qm/output/file_link_format', function( $format ) {
	return 'atom://open/?url=file://%f&line=%l';
} );

Sublime Text

add_filter( 'qm/output/file_link_format', function( $format ) {
	return 'subl://open/?url=file://%f&line=%l';
} );

Netbeans

add_filter( 'qm/output/file_link_format', function( $format ) {
	return 'nbopen://%f:%l';
} );

Готово!

Теперь Query Monitor будет отображать кликабельные ссылки на файлы, где бы он ни выводил имена функций, имена файлов или трассировки стека.

Настройка через Xdebug

Совет для профессионалов: Query Monitor учитывает директиву Xdebug xdebug.file_link_format из файла php.ini. Это позволяет полностью отказаться от использования фильтра qm/output/file_link_format. Для этого нужно установить указанную выше директиву в правильном формате. Необязательно включать Xdebug, чтобы это сработало. Подробнее читайте здесь.

Пример указания ссылки (схемы) для редактора «VS Code»:

xdebug.file_link_format = "vscode://file/%f:%l"

Отображение пути к удаленному файлу

Если вы занимаетесь отладкой удаленного сайта, или используете Docker, или виртуальную машину, вам нужно сопоставить путь на сервере с путем на вашем локальном компьютере, чтобы ваш редактор не пытался загрузить несуществующий файл. Вы можете сделать это, используя фильтр qm/output/file_path_map, который принимает массив удаленных путей и локальный путь, на который они ссылаются.

Например, если вы используете Chassis или другую виртуальную машину на основе Vagrant, отображение пути должно выглядеть следующим образом:

add_filter( 'qm/output/file_path_map', function( $map ) {
	$map['/vagrant/'] = '/path/to/local/project/';
	return $map;
} );

Если вы используете VVV, отображение пути должно выглядеть так:

add_filter( 'qm/output/file_path_map', function( $map ) {
	$map['/srv/'] = '/path/to/vvv/';
	return $map;
} );

-

Источник: querymonitor.com