xdebug, кроме использования для отладки скриптов с использованием IDE, позволяет также намного увеличить читабельность и полезность информации, выводимой php-движком при возникновении ошибок / предупреждений (например, вызовов несуществующих функций). Так, кроме стека вызовов, выводимого по умолчанию при поключении xdebug-модуля, можно выводить содержимое суперглобальных массивов или отдельных из членов (в скобках - значения по-умолчанию):
xdebug.dump_globals - разрешает дамп суперглобальных переменных (1).
Что именно будет выведено, определяется параметрами вида xdebug.dump.*, например:
xdebug.dump.GET=*
xdebug.dump.SERVER=HTTP_HOST
xdebug.dump.SERVER=HTTP_HOST,SERVER_NAME
xdebug.dump_once - если 1, то суперглобальные массивы выводятся лишь единожды, при первом возникновении ошибки, если 0 - то при каждой ошибке (1)
xdebug.dump_undefined - выводить неопределенные (undefined) переменные из суперглобальных массивов (Off)
Также, можно выводить другую дополнительную информацию:
xdebug.show_local_vars=1 - выводить значения локальных переменных
xdebug.collect_params - вывод информации о параметрах, передаваемых функции (имеет значение от 0 до 4, где 0 соответствует отсутствию информации, 4 - наиболее полному представлению)
Естественно, для того, чтобы всю эту красоту увидеть, необходимо, чтобы php-параметр display_erorrs был установлен в On (в php.ini или через ini_set()), а также чтобы Вы не переопределили обработчик ошибок через register_error_handler().
Также xdebug делает более информативным вывод функции var_dump(). Вот некоторые ini-параметры для настройки вывода, которые отображаются и на выводе var_dump, и на сообщениях, возникающих при ошибках:
xdebug.var_display_max_data - максимальная длина выводимых строк (512)
xdebug.var_display_max_children - число выводимых элементов массива / объекта (128)
xdebug.var_display_max_depth - максимальная выводимая вложенность массивов / объектов (3)
Также есть другие полезные параметры, например:
xdebug.max_nesting_level - ограничение на рекурсивные вызовы функции (100)
xdebug.show_exception_trace - выводить trace также при исключениях, даже если они отловлены (информация о неотловленных исключениях и так выводится) (0).
Полная инфорамция о настройках вывода xdebug есть в его документации здесь:
http://xdebug.org/docs/stack_trace
xdebug.dump_globals - разрешает дамп суперглобальных переменных (1).
Что именно будет выведено, определяется параметрами вида xdebug.dump.*, например:
xdebug.dump.GET=*
xdebug.dump.SERVER=HTTP_HOST
xdebug.dump.SERVER=HTTP_HOST,SERVER_NAME
xdebug.dump_once - если 1, то суперглобальные массивы выводятся лишь единожды, при первом возникновении ошибки, если 0 - то при каждой ошибке (1)
xdebug.dump_undefined - выводить неопределенные (undefined) переменные из суперглобальных массивов (Off)
Также, можно выводить другую дополнительную информацию:
xdebug.show_local_vars=1 - выводить значения локальных переменных
xdebug.collect_params - вывод информации о параметрах, передаваемых функции (имеет значение от 0 до 4, где 0 соответствует отсутствию информации, 4 - наиболее полному представлению)
Естественно, для того, чтобы всю эту красоту увидеть, необходимо, чтобы php-параметр display_erorrs был установлен в On (в php.ini или через ini_set()), а также чтобы Вы не переопределили обработчик ошибок через register_error_handler().
Также xdebug делает более информативным вывод функции var_dump(). Вот некоторые ini-параметры для настройки вывода, которые отображаются и на выводе var_dump, и на сообщениях, возникающих при ошибках:
xdebug.var_display_max_data - максимальная длина выводимых строк (512)
xdebug.var_display_max_children - число выводимых элементов массива / объекта (128)
xdebug.var_display_max_depth - максимальная выводимая вложенность массивов / объектов (3)
Также есть другие полезные параметры, например:
xdebug.max_nesting_level - ограничение на рекурсивные вызовы функции (100)
xdebug.show_exception_trace - выводить trace также при исключениях, даже если они отловлены (информация о неотловленных исключениях и так выводится) (0).
Полная инфорамция о настройках вывода xdebug есть в его документации здесь:
http://xdebug.org/docs/stack_trace
Для меня с xDebug очень хорошо работает Codelobster IDE
ОтветитьУдалить