При разработке и отладке модулей бывает довольно сложно понять что же там внутри не работает, почему выводится не то, что ожидалось и тому подобное. Именно поэтому в систему встроен ряд простых, но удобных инструментов для борьбы с подобными ситуациями.
Прежде всего, конечно же, Суперадминистратор сайта. Хорошо бы чтобы только он, но некоторые ошибки воспроизводятся только из под непривилегированных пользователей, а то и вовсе из под гостевых аккаунтов. Именно для этого и предназначен
В режиме отладки всем посетителям сайта выводятся развернутая информация об ошибках. Так же при этом полностью отключается кэширование (чтобы видеть именно ошибки исполнения, а не то что лежит в кэше). Разумеется, подобное поведение системы не сказывается благотворно на ее производительности, но да это и не требуется - как правило, в данном режиме по сайту в гордом одиночестве бродит только сам разработчик.
Итак, мы только что узнали, что развернутую информацию а работе системы можно узнать либо из под аккаунта Суперадминистратора, либо в режиме отладки. Именно в этих режимах и будут доступны нижеописанные полезности.
Если (при включенном JS) на любой странице нажать Ctrl+~, то в верхней части страницы появится лог всех SQL запросов, время выполнения каждого из них и количество результатов.
На самом деле, в этой консоли можно выводить не только данные по mysql, в любом месте Вашего модуля вы можете вставить
И в консоль добавится информация о состоянии переменной $var.
Если Вы считаете что консоль на сайте - только лишняя трата ресурсов, то Вы можете ее легко отключить в настройках сайта.
Так же, консоль автоматически отключается в случае AJAX запросов.
Получается что запросы в этом случае не увидеть? Способ есть. Для принудительной отладки существует
Что же это такое? Это пустая (или не пустая) переменная в URL.
Если к URL
добавить переменную debug
то скучная страница, волшебным образом, преображается - на ней отключается кэширование, выводятся запросы sql и даже появляется
При добавлении ключика debug, после загрузки страницы появляется всплывающее окно, в котором отображаются данные шаблонизатора: подключенные шаблоны, список и содержимое переменных, скорость генерации и тому подобные мелочи, приятные сердцу каждого разработчика.
Все ошибки работы с БД, которые разработчик не обрабатывает сам, считаются критическими и вызывают прерывание исполнения. Если Вы знаете что запрос моет вызвать ошибку, то можете заблокировать вывод ошибки:
В противном случае исполнение будет приостановлено, а в браузер будет выведен текст запроса, код и текст ошибки.
Хороший вопрос. В случае ошибки БД пользователю будет выведено сообщение об ошибке (не развернутое, а только о самом факте ее наличия) и предложение связаться с разработчиком. Понятно что на сообщение это пользователям глубоко плевать и в 99 случаях из 100 рекламаций от пользователей Вы не дождетесь. Но этого и не требуется - движок сам отправит развернутую информацию об ошибке по адресу, который указан в настройках сайта.
Конечно же нет. Одинаковые сообщения об ошибке движок не шлет - считается что до разработчика должно дойти с первого раза:) Более того, если в запросе меняются параметры, то это все равно остается тот же запрос. Например, если запросы
и
Вызывают одну и ту же ошибку, то будет отправлен только один отчет, вне зависимости от того, сколько разных сочетаний параметров вызовет ошибку.
Вот вроде бы и все.
Удачной разработки!
Всего комментариев: 0