MVC компонент

Отладка приложения

В 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