Поиск по тегу «debug»
Новые возможности и удобства, облегчающие разработчикам отладку компонентов и шаблонов.
Одной из неудобных задач при отладке для меня является поиск причины ошибки 403/404. Иногда она настолько неочевидна, что приходится пошагово проходить код xDebug-ом. Ещё одна «зона сумрака» при отладке – любая страница перед редиректом, например, обработка формы добавления/изменения контента. Тут тоже нужен или xDebug, или var_dump() с принудительным остановом после него. «Расширенная отладка» версии 14.1.2 и выше значительно упрощает анализ таких моментов.
Иногда при тестировании кода возникает необходимость как-то более удобно вывести данные из повторяющихся участков кода или наглядно отследить изменения в переменных. Для этого предназначены табличные контрольные точки (ТКТ).
Обновление отладки. Очистка фильтров и другое.
Обновил документацию по использованию "Расширенной отладки" с учётом новых версий движка и отладки. Новые примеры, новые скриншоты, новые возможности.
Как говорят у нас в Украине: «Лучше 100 раз пощупать, чем один раз услышать». Поэтому представляю возможность наглядно «пощупать» работу Двойки. 😊 Новая, полностью переписанная версия «Расширенной отладки» на базе дефолтной отладки 2.14. Благодаря изменениям в Двойке за последние годы и мудрым подсказкам Fuze теперь она сделана компонентом, работающим в двух режимах: стандартном - практически без изменения ядра, и полном - с патчами ядра для сбора дополнительных отладочных данных.
С версии 14.1 «Расширенная отладка» может работать в двух режимах:
Обновление «Отладки» для InstantCMS 2.7.0.
Обновление «Отладки» для InstantCMS 2.6.1.
Обновление «Отладки» для InstantCMS 2.6.0.
Обновление «Отладки» для InstantCMS 2.5.1.
Обновление «Отладки» для обновления Двойки. Плюс ещё чуток оптимизации.
Десятая, юбилейная версия. Очень много доработок и изменений. Пока описывал использование «Расширенной отладки», в голову приходили мысли и идеи. Вот результат их воплощения.
Мощная система расширенной отладки. Позволяет легко, наглядно и управляемо получить информацию о последовательности, времени выполнения, используемой памяти и других параметрах PHP-скриптов и частей CMS, а также о работе с базой данных и кешем. Данная «Отладка» будет полезна как начинающим пользователям для изучения работы InstantCMS 2, так и опытным разработчикам компонентов/шаблонов при создании и тестировании своих продуктов. А так же всем пользователям CMS для выявления проблем при размещении сайтов на реальных серверах, где невозможно или неудобно использовать xDebug или подобную систему отладки.
Ответы актуальны для крайней версии «Расширенной отладки». Влияет ли «Расширенная отладка» на функционирование InstantCMS 2? «Расширенная отладка» не оказывает влияния на работу функций CMS и её компонентов. Она только ведёт учёт происходящих в системе действий. Какие изменения вносит «Расширенная отладка» в систему? «Расширенная отладка» не изменяет базу данных, кроме добавления стандартной записи о новом установленном компоненте. Начиная с версии 14.1 отладка может работать в двух режимах: стандартном - практически без изменения ядра, и полном - с патчами ядра для сбора дополнительных отладочных данных. Подробнее про режимы и изменяемые файлы можете почитать на странице описания режимов. Установил отладку, но информации отладки на сайте не вижу. Что не так? 1.
В стандартной версии движка пока перехватываются и обрабатываются только ошибки при обращении к базе данных. Ошибки PHP и предупреждения (в случае соответствующих настроек на сервере) не выводятся, а тихонько ложатся в лог веб-сервера. «Расширенная отладка» предоставляет несколько больше возможностей при обработке ошибок, которые будут полезны и разработчикам, и вебмастерам.
При анализе работы движка CMS или при отладке своих компонентов/шаблонов требуется знать состояние переменных в разных местах кода. Частично эта задача решается выводом информации об основных операциях несколькими щелчками мышки в «Расширенной отладке». А для более точного понимания происходящего в любом месте кода можно использовать контрольные точки.
Самый интересный вопрос для любого разработчика: «Что там, внутри моего кода, на самом деле происходит с данными?». Потому, что реальность иногда отличается от задумки из-за стратегических, логических и синтаксических ошибок в коде. И чтобы привести их в соответствие, нужно знать, какие данные поступают на вход той или иной части скрипта, и какие результаты обработки данных получаются на выходе.
Немного поговорим про использование фильтров. Поскольку «Расширенная отладка» может выдать в лог очень много разной информации, то возникла необходимость как-то организовать отбор только нужных строк логов. Для этого я сделал фильтры.
Этот и несколько следующих постов про использование «Расширенной отладки» будут в основном полезны для разработчиков и желающих разобраться в InstantCMS 2 на уровне кода. Начну с небольшого поста про трассировку вызовов. Ведь всегда хочется понимать, что откуда вызывается и где источник тех или иных данных.
Использование расширенной отладки. Часть 3. Изучаем работу InstantCMS 2 без знания PHP При создании своих сайтов любой вебмастер довольно быстро сталкивается с необходимостью хотя бы в общих чертах понимать, как устроена и работает выбранная им CMS. Попробуем наглядно посмотреть, как работает InstantCMS 2, без знания программирования и без чтения php-кода системы на примере одной из страниц демо-сайта. Это очень просто!
Пока писал пост про использование «[url=]Класса расширенной отладки v.9[/url]», заметил, что не хватает пары небольших полезностей. Вот, добавил. Заодно исправил обнаруженные небольшие ошибки.
Использование расширенной отладки. Часть 2: Если тормозят некоторые страницы сайта или ругается подд
Бывает так, что весь сайт работает достаточно шустро, а некоторые его страницы – заметно медленнее. Или создали новый сайт, настроили компоненты, виджеты, добавили материалы, а он тормозит. Или страницы сайта стали загружаться через раз, а поддержка хостинга начала ругаться на превышение лимитов процессора/памяти или на слишком «тяжёлые запросы». Как понять, что именно вызывает эти проблемы? Конечно, можно по очереди отключать компоненты, убирать виджеты и пытаться визуально оценить, насколько быстрее стал работать сайт. Но легче и удобнее разобраться с причинами вышеописанных проблем используя «Расширенную отладку». Материал в первую очередь рассчитан на пользователей, которые только начинают разбираться в InstantCMS 2. Но также будет полезен как пример использования отладки и для более опытных.
Обновление класса расширенной отладки и оптимизации для InstantCMS 2.3.0.
Долгожданное обновление класса расширенной отладки и оптимизации для InstantCMS 2.2.1.
Поскольку звучат вопросы о том, как можно определить, в чём может быть причина притормаживаний на сервере, решил написать отдельный пост по этой теме. Чтобы понять, что именно вызывает тормоза, нужно узнать время работы разных частей скриптов и разных компонентов сервера, а потом сравнить это время много раз, обновляя страницы в разное время.
Обновление класса расширенной отладки и оптимизации для InstantCMS 2.1.2. Также исправлены несколько ошибок предыдущей версии.
Обновлённая версия класса расширенной отладки для InstantCMS 2.1.0-2.1.1. Добавил в этой версии: ------------- + Перехват и вывод в лог ошибок PHP. + Сообщения админу о критических ошибках. + Вывод пользователям (не админам) заданного текста вместо информации об ошибке. + Блоки в настройках сделаны в виде вкладок. + Добавлены фильтры для автозагрузок классов. + Сделан учёт расхода памяти на отладку – строка 'debug' в блоке 'Memory' суммарной таблицы. При минимальных настройках класс использует всего 11 килобайт. + Подсветка цветом медленных запросов в логе. + Подсветка цветом "тяжёлых" хуков в логе. + Подсветка цветом "тяжёлых" виджетов в логе. + Добавлена обработка строковых параметров в настройках. Теперь можно использовать одинарные и двойные кавычки в строковых полях настроек. + Функция вызова точки отладки 'DebugCheckPoint' теперь имеет другое, более короткое имя 'dcp'. Я замучался писать длинное имя при постоянном её использовании и решил упростить жизнь себе и вам. 😊
Мощный, но лёгкий класс расширенной отладки для InstantCMS 2.0. Обновлённая версия с новым функционалом. В ответ на просьбы к разработчикам CMS на форуме – теперь также собирается и выводится информация о событиях/хуках и виджетах!
Мощный, но лёгкий класс для расширенной отладки. Позволяет легко, наглядно и управляемо получить информацию о времени выполнения и о других параметрах php-скриптов CMS и их частей. Версия для InstantCMS 2.0.0/2.0.1. Данная отладка будет полезна как при тестировании и оптимизации самой CMS, так и разработчикам компонентов. А так же для выявления проблем при размещении сайтов на реальных серверах, где невозможно использовать встроенную в IDE систему отладки.
Мощный, но лёгкий класс для расширенной отладки. Позволяет легко, наглядно и управляемо получить информацию о времени выполнения и о других параметрах php-скриптов CMS и их частей. Данная отладка будет полезна как при тестировании и оптимизации самой CMS, так и разработчикам компонентов. А так же для выявления проблем при размещении сайтов на реальных серверах, где невозможно использовать встроенную в IDE систему отладки. Например, с её помощью можно увидеть «тяжёлые» или ошибочные запросы, повторяющиеся подключения файлов, «задумчивые» участки кода и т.д. Можно быстрее понять какой из добавленных на сайт компонентов тормозит генерацию страниц и почему. Администраторы прямо из админки увидят «тонкие места» сервера – что именно вызывает тормоза: процессор, диски или база данных. Программисты смогут точнее понять работу CMS, посмотрев на неё «изнутри».