Вывод отладочной информации в файл при отладке
JDump предназначен только для Joomla, имеет ограничения на размер выводимой переменной и открывает всплывающее окно, что не всегда удобно.
Чтобы обойти его, можно вывести значения нужных переменных в файл следующим приемом.
Этот способ так же подходит для отладки скриптов обрабатывающих ajax запросы.
file_put_contents( __DIR__.'/test.txt', print_r($html, true) );
Если надо вывести несколько переменных, то можно использовать такой прием.
$test[__FILE__.' '.__LINE__.'$product_decode'] = $product_decode; $test[__FILE__.' '.__LINE__.'$product_info'] = $product_info; $test[__FILE__.' '.__LINE__.'$product_encode'] = $product_encode; file_put_contents( __DIR__.'/test.txt', print_r($test, true) );
Вывод всех определенных в данном месте переменных.
file_put_contents(__DIR__.'/test.txt', print_r(get_defined_vars(),true));
Если надо создать новый или дописать данные в существующий файл, то применяется следующая конструкция.
$test[__FILE__.' '.__LINE__.'$product_decode'] = $product_decode; $test[__FILE__.' '.__LINE__.'$product_info'] = $product_info; $test[__FILE__.' '.__LINE__.'$product_encode'] = $product_encode; file_put_contents( __DIR__.'/test.txt', print_r($test, true),FILE_APPEND );
Вывод прочей информации.
Для вывода списка подгруженных файлов скрипта можно использовать следующую конструкцию.
register_shutdown_function(function() { $test['included files'] = get_included_files(); file_put_contents( __DIR__.'/test.txt', print_r($test, true),FILE_APPEND ); });
Она будет исполнена по завершении скрипта.
Если нужна трассировка, то вначале интересующего отрезка надо написать:
$test['backtrace'] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); file_put_contents( __DIR__.'/test.txt', print_r($test, true),FILE_APPEND );
DEBUG_BACKTRACE_IGNORE_ARGS - это для уменьшения расхода памяти.