Answer the question
In order to leave comments, you need to log in
How to debug Joomla components?
There is a hosted joomla site and a component I am developing with an MVC implementation.
During component operation, Ajax is used and redirect functions are called. So the VAR_DUMP function doesn't work.
How to debug or view component variable values?
I see it this way: in the process of working through a certain function in the code, I add textual information to a certain stack.
After displaying the page in the console of the DEBUG module, all these values \u200b\u200bthat I added earlier are displayed.
Answer the question
In order to leave comments, you need to log in
class MyClass{
function __construct(){
//Дебаг через log.txt в корне сайта
if(JFactory::getConfig()->error_reporting == 'development'){
jimport('joomla.log.log');
$options = array( 'logger' => 'formattedtext', 'text_entry_format' => '{DATE}' . chr(9) . '{TIME}' . chr(9) . '{PRIORITY}' . chr(9) . '{CATEGORY}' . chr(9) . '{MESSAGE}', 'text_file_path' => JPATH_BASE, 'text_file' => 'log.txt' );
$category = array('NameYoursComponent');
Jlog::addLogger($options, JLog::ALL, $category);
// где JPATH_BASE и text_file являются путь и имя файла для логирвоания
}
}
function MyFunction(){
if(JFactory::getConfig()->error_reporting == 'development'){
//$fl = fopen(JPATH_BASE."/log.txt", "w"); fclose($fl);
// Расскоментируйте строку если нужно очищать файл лога каждый раз.
JLog::add('Test message!'); // или
JLog::add('Test object:'.print_r($TestDumpObject,true)); // или
JLog::add('Test message!', JLog::WARNING, 'NameYoursComponent');
// где $TestDumpObject просматриваемый объект, NameYoursComponent -имя компонента для которого будет вестись отдельный ЛОГ.
}
}
//или так через системное сообщение
function MyFunction2(){
if(JDEBUG || JFactory::getConfig()->error_reporting == 'development')
JFactory::getApplication()->enqueueMessage("TestMessage: ".print_r( $TestDumpObject, TRUE));
// где $TestDumpObject просматриваемый объект.
}
//или так
function MyFunction3(){
if(JDEBUG || JFactory::getConfig()->error_reporting == 'development')
jimport('joomla.error.log');// Подключаем библиотеку JLog
$log = JLog::getInstance('my.log.php'); // Инициализация JLog-объекта, файл логов будет называться "my.log.php"
$log->addEntry(array('LEVEL' => '1','STATUS' => 'SOME ERROR:','COMMENT' => 'Your message here'));// Добавляем какие-то данные строку в лог
}
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question