Отладка
Класс Debug
В MV присутствует класс Debug, содержащий методы для отладки скриптов.
//Вывод дампа
Debug::pre($var);
Debug::pre($mv -> pages);
//Вывод дампа и exit
Debug::exit($var);
//Вызов ошибки и остановка скрипта
//В режиме production будет показана 404 ошибка и записан лог
Debug::displayError('Текст ошибки...');
Запись в лог
Класс Log имеет возможность создавать файлы с логами в папке log в корне проекта. Данная папка должна иметь права на запись.
//Создаст запись в файле лога с именем сервера, например mysite.com.log
Log::add('Текст ошибки или сообщения');
//Создаст запись в файле лога с заданным названием, например events.log
//Полезно для разделения log файлов по типам и сервисам
Log::add('Текст ошибки или сообщения', 'events');
Время генерации и подсчет SQL запросов
В отладочной панели можно увидеть время генерации страницы, количество исполненных SQL запросов, а также подключаемый файл шаблона. Для отображения панели нужно включить настройку в конфигурационном файле.
//Файл config/setup.php
//Сброс кэша настроек, маршрутов и медиа файлов
//Увеличивайте на 1 при каждой заливке на production сервер
'Build' => 3,
//Отображать панель отладки в нижней части окна браузера
//В режиме production панель будет отображаться только если есть авторизация в админке
'DebugPanel' => true,
Определение типа браузера
Браузер пользователя можно определить статическим методом browser класса Debug. Возвращает тип браузера, возможные значения: firefox, ie, opera, chrome, safari, yandex либо пустая строка если не относится ни к одному из перечисленных типов.
$browser = Debug::browser();
if($browser === 'safari')
{
...
}
Определение мобильного устройства
Определяются следующие мобильные устройства: Android, iPhone, iPod, BlackBerry, IEMobile, Windows Phone. Возвращает значения: android, iphone, pod, blackberry, ie, windows либо пустая строка если не относится ни к одному из перечисленных устройств.
if(Debug::isMobile() === 'iphone')
include ...;
if(Debug::isMobile())
{
...
}
Определение планшета
Определяются следующие планшеты: Android, iPad, Windows. Возвращает значения: android, ipad, windows либо пустая строка если не относится ни к одному из перечисленных устройств.
if(Debug::isTablet() === 'ipad')
echo ...;
if(Debug::isTablet())
{
...
}
Предыдущий раздел
Миграции