Pull to refresh

XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 2.

Reading time2 min
Views16K
Первая часть

Официальный сайт по проекту — www.xdebug.org
Параметры настройки, в скобках указана версия (например, Xdebug 2) — www.xdebug.org/docs-settings.php
Документация — www.xdebug.org/docs.php

Установка XDebug2 под Windows

1. Скачиваем расширение под нужную вам версию PHP:
PHP 4.4.1+
PHP 5.1.2+
PHP 5.2.1+

2. Правим php.ini:
; путь к скачанному расширению (указать свой). если не будет работать, заменить zend_extension_ts на extension
zend_extension_ts=«C:\program files\php\extensions\php_xdebug.dll»
; включение/отключение профайлинга (1/0)
xdebug.profiler_enable = 1
; директория для результатов профайлинга (по умолчанию)
xdebug.profiler_output_dir = «c:\program files\php\tmp_xdebug»

Данные по выполнению скрипта пишутся в файл формата cachegrind (текстовый файл). Эти файлы прекрасно читает виндовая утилита WinCacheGrind.

Установка XDebug2 под Linux

1. Скачиваем исходный код
2. Правим php.ini:
; включение/отключение профайлинга (1/0)
xdebug.profiler_enable = 1
; директория для результатов профайлинга (по умолчанию)
xdebug.profiler_output_dir = "/data/home/user/projects/tmp_xdebug"
3. Дальше курим мануал :)

Настройка XDebug

Если у вас один проект, над которым вы работаете, то директивы XDebug можно прописать в файле php.ini. Они будут действовать на все проекты на вашем веб-сервере.

Если же вам нужно настроить XDebug индивидуально под каждый проект, то используйте php_value в файле .htaccess (Apache)

Пример настройки:
#Изменить пути к логу на свои (+создать директорию для лога)
<IfModule mod_php4.c>
#путь к логу XDebug
php_value xdebug.profiler_output_dir /data/home/user/your_project/tmp_xdebug

#php_value xdebug.trace_output_dir /data/home/user/your_project/tmp_xdebug

#подключаемый вспомогательный файл для виндовой утилиты WinCacheGrind (выдает профайл-лог)
#При отладке в адресной строке браузера вводить GET-параметр ?XDEBUG_PROFILE (http://yourhost/?XDEBUG_PROFILE). Открыть результат WinCacheGrind’ом
php_value php_value auto_prepend_file /data/home/user/your_project/Debug.class.php

#автотрасировка выключена
php_flag xdebug.auto_trace 0

#важная опция. При 1 — лог сохранятся, при 0 — выдается при GET-параметре XDEBUG_PROFILE (http://yourhost/?XDEBUG_PROFILE)
php_flag xdebug.profiler_enable 0

php_flag xdebug.profiler_enable_trigger 1

#собирать параметры, возвращаемые значения, переменные (0 — выключено, 1 — вкл)
#php_flag xdebug.collect_params 0
#php_flag xdebug.collect_return 0
#php_flag xdebug.collect_vars 0

#отключает обработку ошибок профайлером, 1 — включает
#php_flag xdebug.default_enable 1
#показывать в логе использование памяти между вызовами функций
php_flag xdebug.show_mem_delta 1

#1 — человекопонятный вывод лога
php_flag xdebug.trace_format 0

#timestamp — второй формат названия выходного файла
#php_value xdebug.trace_output_name crc32

php_value xdebug.profiler_output_name pid
</IfModule>


Полный список настроек.



Вспомогательный файл для получения профайл-лога через GET-параметр и просмотра WinCacheGrind (скачать), оригинал кода был взят год назад с форума dklab

Tags:
Hubs:
Total votes 8: ↑6 and ↓2+4
Comments24

Articles