В MVC компонент встроены дополнительные компоненты для отладки приложения. При желании - вы можете использовать отладку отдельно, просто нужно дополнительно включить вывод скриптов в конце файла шаблона командой c\mvc::drawJs(), если вы используете скелетон - этого делать не нужно.
Режим отладки включается при помощи метода
c\core::$debug=true;
Во время отладки - задействуются дополнительные скрипты, нагрузка, а также обычному пользователю показываются выполняемые команды, по этому использовать режим отладки рекомендуется только на тестовом сервере, либо только для тестовых пользователей.
Отладка происходит следующим образом - большая часть библиотек - при выполнении команд - содержит часть, выполняемой информации, которую нужно отобразить, если отладка включена. Система отладки собирает все, что ей предоставляют и в момент рендеринга страницы - дописывает скрипты, которые выводят информацию в консоль.
Наблюдать информацию о выводе вы можете при помощи отладочных механизмов браузера во вкладке "консоль". Поддерживаются все браузеры, за исключением IE8, который имеет большие ограничения при работе с консолью.
Дополнительно в отладке добавляется строка об общем времени отработки страницы в PHP, задействованных скриптах и о расходе памяти. Разумеется, в обычном режиме, все это будет происходить быстрее и меньше задействованных файлов.
Вы также можете добавить вывод своих собственных отладочных данных, для этого существуют следующие
Вывод строки с меткой
c\debug::consoleLog($message,$type=false);
c\debug::trace($message='',$type=error::INFO, $args=null);
Первая функция просто выводит в консоль сообщение с меткой ошибки. Метки ошибки полностью соответствуют константам в классе ERROR
Функция trace в отличие от первой - возвращает место, откуда ваша функция была вызвана. Очень полезна для отладки классов, которые вызываются из множества мест. Параметр $args добавляется в конце фразы. Он может быть передан в качестве строки или массива. Функция хорошо подходит для указания переменной и ее значения.
c\debug::dir($array);
c\debug::table($array);
Выводит произвольные массивы в виде дерева и таблицы. Для таблицы может использоваться только 2 мерный массив.
c\debug::group($header,$type=error::INFO,$collapsed=true);
c\debug::groupEnd();
Открывает и закрывает вкладку, в которой может содержаться сгруппированная отладочная информация. Необхохимо следить за одинаковым количеством открытых и закрытых вкладок, чтобы не допустить поломку структуры.
$header - название заголовка группы
$collapsed - Свернутая ли вкладка по умолчанию
Если вы привыкли к отладке обычными методами в виде die($var); или print_r($var); - можете воспользоваться усовершественными методами отладки
c\debug::z($var,$exit=true);
c\debug::dump($var,$exit=false);
Функции идентичны - выводят текст в <pre> подготовленном виде и завершаются перед отображением. Если к моменту вызова функции - в буфере содержались отладочные скрипты - выводит их.
c\debug::alert($value='',$variable='',$file='',$line='');
Генерит Javascript, который выводит alert сообщение с расписаным текстом, содержащим значение переменной.
При желании - вы можете добавить отдалочные скрипты, которые будут запущены только в режиме отладки. Файлы могут лежать в любых папках с названием debug.php
В библиотеке отладки существует метод замера времени исполнения участков кода.
c\debug::timer();
вернёт разницу в милисекундах между прошлым вызовом подобной функции и текущей
Создано при помощи сервиса Core CMS