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 - это для  уменьшения расхода памяти.