Мощный, но лёгкий класс расширенной отладки для InstantCMS 2.0. Обновлённая версия с новым функционалом. В ответ на просьбы к разработчикам CMS на форуме – теперь также собирается и выводится информация о событиях/хуках и виджетах!
Данная отладка будет полезна как при тестировании и оптимизации самой CMS, так и разработчикам компонентов. А так же всем пользователям CMS для выявления проблем при размещении сайтов на реальных серверах, где невозможно использовать встроенную в IDE систему отладки.
Например, с её помощью прямо на реальном работающем или на локальном тестовом сайте можно увидеть «тяжёлые» или ошибочные запросы, повторяющиеся подключения файлов, неоптимизированные участки кода, «задумчивые» хуки и виджеты и т.д. Можно быстрее понять какой из добавленных на сайт компонентов тормозит генерацию страниц и почему. Администраторы прямо из админки увидят «тонкие места» сервера – что именно вызывает тормоза: процессор, диски или база данных; смогут оптимальнее подобрать объём ОЗУ для php и т.п. Программисты смогут точнее понять работу CMS, посмотрев на неё «изнутри» и быстрее, нагляднее отладить свои компоненты или шаблоны.
Краткий список возможностей:
--------
• Расширенная информация о времени работы CMS и её частей/операций
• Лог автозагрузок классов и инклудов файлов и суммарная таблица инклудов.
• Лог обращений к БД (SQL-запросов и коннектов).
• Лог работы с кэшем.
• Фильтры для логов операций – позволяют выводить только интересующую информацию.
• Информация об ошибках, о входных данных и результатах работы отслеживаемых операций в логах.
• Контрольные точки в коде для получения подробной информации о php-скриптах.
• Информация о памяти скрипта (суммарная и в контрольных точках).
• Настраиваемые логи отладки выводятся под подвалом страницы, не изменяя саму страницу.
• Управление параметрами отладки производится через новую вкладку «Отладка» в админке.
• При отключении отладки она практически не влияет на скорость работы CMS.
• Цветовое оформление логов и другой информации сделано через отдельный css-файл.
• Текстовые строки из настроек в админке вынесены в языковые файлы.
В этой версии добавил:
--------
+ Лог и суммарные таблицы событий и хуков.
+ Лог и суммарная таблица виджетов.
+ Подсчитывается время работы контроллера (полезно для создателей компонентов).
+ Подсчитывается время рендеринга шаблона (пригодится разработчикам шаблонов).
+ В админке показывается предупреждение-напоминание о включённой отладке.
+ Наглядный список текущих параметров отладки в "Панели управления".
+ Оптимизация загрузки манифестов.
Также в эту версию включены мои предыдущие оптимизации «Двойки», то есть работа CMS ускорена более, чем в полтора раза (смотрите более ранние записи в моём блоге).
В данной версии я реализовал всё свои основные «хотелки» по возможностям отладки и даже больше. На мой взгляд, текущего функционала вполне достаточно как для изучения работы CMS (я изучаю её по логам операций, по точкам отладки с выводом разных переменных в интересующих меня местах кода и по трассировке их вызовов), так и для реальной работы с системой (программирование, отладка системы и компонентов, контроль работы сайта на реальном хостинге). Однако, если у вас будут обоснованные предложения по развитию возможностей отладки, я постараюсь со временем их добавить. Также с благодарностью принимаются все ваши замечания об ошибках и возможных недоработках в текущей версии класса.
Я планирую встраивать этот класс во все свои будущие сайты. Поскольку скорее всего я буду использовать свой патченый под себя вариант ядра, то встраивать отладку дважды в каждое новое обновление системы (в свою версию и в официальную), делать отдельный архив изменённых файлов официального пакета и описание для размещения в блог — будет накладно, то я не могу гарантировать своевременное включение отладки в обновления CMS. Хотя на первых порах постараюсь, конечно. Да и пользователям, которые уже внесли свои правки в файлы CMS, такой вариант будет неудобен.
Поэтому, если вам понравилась эта отладка настолько, что вы дружно захотите иметь её на своих сайтах «из коробки» без дополнительных ручных манипуляций, захотите обновлять ядро ваших сайтов централизовано из депозитария Инстанта и при этом сохранять возможность отладки, и уважаемый r2 посчитает возможным включить её в код следующей версии InstantCMS 2.0, я готов предоставить разработчикам описание по встраиванию класса в Инстант. Или могу самостоятельно встроить её в замороженный на небольшое время текущий код нового дистрибутива. С учётом любых требований разработчиков, естественно. А до этого момента хорошо бы с вашей помощью выявить и исправить все возможные ошибки класса отладки.
Скачать класс отладки можно тут
Достаточно просто распаковать содержимое архива с заменой файлов в папку с уже установленной системой. Как и предыдущая версия, эта подходит для InstantCMS 2.0.0-2.0.1. Также можно накатывать этот архив целиком на уже установленную пятую версию отладки.
В конфиге по-умолчанию отладка уже включена (смотрите новый раздел "Отладка" в "Настройках" админки). Если отладочная информация на сайте не показывается, убедитесь, что вы зашли под админом или выключите параметр «Показывать отладочную информацию только администраторам».
Суммарный список изменённых файлов исходной версии InstantCMS 2.0 на отладку v.6:
Файлы класса отладки (добавленные к оригинальной InstantCMS 2.0):
Если вы уже изменяли для себя какие-то из этих файлов, то сделайте сравнение моих версий с оригинальными файлами и внесите изменения в свои файлы вручную.
Также вы можете скачать:
Полное описание возможностей класса отладки (html-файл в архиве)
Подробное описание настроек отладки в админке и использование точек остановки (html-файл в архиве)
UPD 2014.07.05 18:15
Прошу прощения, забыл внести оптимизацию ещё в несколько файлов. Теперь всё на месте.
Походу ещё добавил вывод в лог не только данных виджетов, а и возвращаемых ими результатов.
А также в выводе логов точек отладки добавил информацию о количестве и времени обработанных с момента последней КТ хуках.
Архив перезалил. Скачайте заново по обновлённой ссылке.
Изменения в файлах:
Данная отладка будет полезна как при тестировании и оптимизации самой CMS, так и разработчикам компонентов. А так же всем пользователям CMS для выявления проблем при размещении сайтов на реальных серверах, где невозможно использовать встроенную в IDE систему отладки.
Например, с её помощью прямо на реальном работающем или на локальном тестовом сайте можно увидеть «тяжёлые» или ошибочные запросы, повторяющиеся подключения файлов, неоптимизированные участки кода, «задумчивые» хуки и виджеты и т.д. Можно быстрее понять какой из добавленных на сайт компонентов тормозит генерацию страниц и почему. Администраторы прямо из админки увидят «тонкие места» сервера – что именно вызывает тормоза: процессор, диски или база данных; смогут оптимальнее подобрать объём ОЗУ для php и т.п. Программисты смогут точнее понять работу CMS, посмотрев на неё «изнутри» и быстрее, нагляднее отладить свои компоненты или шаблоны.
Краткий список возможностей:
--------
• Расширенная информация о времени работы CMS и её частей/операций
• Лог автозагрузок классов и инклудов файлов и суммарная таблица инклудов.
• Лог обращений к БД (SQL-запросов и коннектов).
• Лог работы с кэшем.
• Фильтры для логов операций – позволяют выводить только интересующую информацию.
• Информация об ошибках, о входных данных и результатах работы отслеживаемых операций в логах.
• Контрольные точки в коде для получения подробной информации о php-скриптах.
• Информация о памяти скрипта (суммарная и в контрольных точках).
• Настраиваемые логи отладки выводятся под подвалом страницы, не изменяя саму страницу.
• Управление параметрами отладки производится через новую вкладку «Отладка» в админке.
• При отключении отладки она практически не влияет на скорость работы CMS.
• Цветовое оформление логов и другой информации сделано через отдельный css-файл.
• Текстовые строки из настроек в админке вынесены в языковые файлы.
В этой версии добавил:
--------
+ Лог и суммарные таблицы событий и хуков.
+ Лог и суммарная таблица виджетов.
+ Подсчитывается время работы контроллера (полезно для создателей компонентов).
+ Подсчитывается время рендеринга шаблона (пригодится разработчикам шаблонов).
+ В админке показывается предупреждение-напоминание о включённой отладке.
+ Наглядный список текущих параметров отладки в "Панели управления".
+ Оптимизация загрузки манифестов.
Также в эту версию включены мои предыдущие оптимизации «Двойки», то есть работа CMS ускорена более, чем в полтора раза (смотрите более ранние записи в моём блоге).
В данной версии я реализовал всё свои основные «хотелки» по возможностям отладки и даже больше. На мой взгляд, текущего функционала вполне достаточно как для изучения работы CMS (я изучаю её по логам операций, по точкам отладки с выводом разных переменных в интересующих меня местах кода и по трассировке их вызовов), так и для реальной работы с системой (программирование, отладка системы и компонентов, контроль работы сайта на реальном хостинге). Однако, если у вас будут обоснованные предложения по развитию возможностей отладки, я постараюсь со временем их добавить. Также с благодарностью принимаются все ваши замечания об ошибках и возможных недоработках в текущей версии класса.
Я планирую встраивать этот класс во все свои будущие сайты. Поскольку скорее всего я буду использовать свой патченый под себя вариант ядра, то встраивать отладку дважды в каждое новое обновление системы (в свою версию и в официальную), делать отдельный архив изменённых файлов официального пакета и описание для размещения в блог — будет накладно, то я не могу гарантировать своевременное включение отладки в обновления CMS. Хотя на первых порах постараюсь, конечно. Да и пользователям, которые уже внесли свои правки в файлы CMS, такой вариант будет неудобен.
Поэтому, если вам понравилась эта отладка настолько, что вы дружно захотите иметь её на своих сайтах «из коробки» без дополнительных ручных манипуляций, захотите обновлять ядро ваших сайтов централизовано из депозитария Инстанта и при этом сохранять возможность отладки, и уважаемый r2 посчитает возможным включить её в код следующей версии InstantCMS 2.0, я готов предоставить разработчикам описание по встраиванию класса в Инстант. Или могу самостоятельно встроить её в замороженный на небольшое время текущий код нового дистрибутива. С учётом любых требований разработчиков, естественно. А до этого момента хорошо бы с вашей помощью выявить и исправить все возможные ошибки класса отладки.
Скачать класс отладки можно тут
Достаточно просто распаковать содержимое архива с заменой файлов в папку с уже установленной системой. Как и предыдущая версия, эта подходит для InstantCMS 2.0.0-2.0.1. Также можно накатывать этот архив целиком на уже установленную пятую версию отладки.
В конфиге по-умолчанию отладка уже включена (смотрите новый раздел "Отладка" в "Настройках" админки). Если отладочная информация на сайте не показывается, убедитесь, что вы зашли под админом или выключите параметр «Показывать отладочную информацию только администраторам».
Суммарный список изменённых файлов исходной версии InstantCMS 2.0 на отладку v.6:
\index.php
\system\config\autoload.php
\system\controllers\admin\frontend.php
\system\controllers\admin\actions\install_finish.php
\system\controllers\admin\actions\settings.php
\system\controllers\typograph\hooks\html_filter.php
\system\core\cache.php
\system\core\config.php
\system\core\controller.php
\system\core\core.php
\system\core\database.php
\system\core\eventsmanager.php
\system\core\form.php
\system\core\template.php
\system\core\mailer.php
\system\core\model.php
\system\languages\en\controllers\admin\admin.php
\system\languages\ru\controllers\admin\admin.php
\templates\default\admin.tpl.php
\templates\default\main.tpl.php
\system\config\autoload.php
\system\controllers\admin\frontend.php
\system\controllers\admin\actions\install_finish.php
\system\controllers\admin\actions\settings.php
\system\controllers\typograph\hooks\html_filter.php
\system\core\cache.php
\system\core\config.php
\system\core\controller.php
\system\core\core.php
\system\core\database.php
\system\core\eventsmanager.php
\system\core\form.php
\system\core\template.php
\system\core\mailer.php
\system\core\model.php
\system\languages\en\controllers\admin\admin.php
\system\languages\ru\controllers\admin\admin.php
\templates\default\admin.tpl.php
\templates\default\main.tpl.php
\system\config\debug.php
\system\controllers\admin\actions\settings_debug.php
\system\controllers\admin\forms\form_debug.php
\system\core\debug.php
\system\core\debugconfig.php
\templates\default\controllers\admin\settings_debug.tpl.php
\templates\default\css\debug.css
\system\controllers\admin\actions\settings_debug.php
\system\controllers\admin\forms\form_debug.php
\system\core\debug.php
\system\core\debugconfig.php
\templates\default\controllers\admin\settings_debug.tpl.php
\templates\default\css\debug.css
Также вы можете скачать:
Полное описание возможностей класса отладки (html-файл в архиве)
Подробное описание настроек отладки в админке и использование точек остановки (html-файл в архиве)
UPD 2014.07.05 18:15
Прошу прощения, забыл внести оптимизацию ещё в несколько файлов. Теперь всё на месте.
Походу ещё добавил вывод в лог не только данных виджетов, а и возвращаемых ими результатов.
А также в выводе логов точек отладки добавил информацию о количестве и времени обработанных с момента последней КТ хуках.
Архив перезалил. Скачайте заново по обновлённой ссылке.
Изменения в файлах:
\system\core\config.php
\system\core\core.php
\system\core\debug.php
\system\core\mailer.php
\system\core\model.php
\system\controllers\typograph\hooks\html_filter.php
\system\languages\en\controllers\admin\admin.php
\system\languages\ru\controllers\admin\admin.php
\system\core\core.php
\system\core\debug.php
\system\core\mailer.php
\system\core\model.php
\system\controllers\typograph\hooks\html_filter.php
\system\languages\en\controllers\admin\admin.php
\system\languages\ru\controllers\admin\admin.php
Реклама #
Loadырь 10 лет назад #
Скорпион 10 лет назад #
Dublic 10 лет назад #
Может разработчики ICMS v.2 все таки включат это полезное дополнение в официальную сборку?
WebMan 10 лет назад #
1. Это не отдельный модуль, а серьёзный, комплексный хак системы. Он глубоко встраивается в ядро. Какой смысл публиковать его отдельно от темы Инстанта?
2. В этом блоге информация о нём сразу видна заинтересованным пользователям, не нужно ничего искать на стороннем сайте. Тут же есть и все исходники, я ничего не скрываю.
3. Выкладывать на Github список всех изменений, которые делаются в ядре, да ещё и для каждой версии - лишняя работа. Никто им пользоваться не будет, все предпочтут иметь отладку в официальных сборках или, в крайнем случае, будут ждать готовое решение от меня для очередного обновления Инстанта.
А вот включат ли разработчики эти возможности в официальную версию - зависит от их видения CMS и от ваших пожеланий.
NeBox 10 лет назад #
Всегда можно внести коррективы и т.д...
У меня на гитхабе куча проектов, которые легко мониторить. А лазить по сайтам в поисках обновления...
Вы нашли ошибку в коде, на гитхабе сделали коммит и все. А тут придется выкладывать архив, людям вытаскивать эти изменения...
Для чего такой геморрой то? уже почти все движки\модули\плагины имеют репозитории, ибо удобно работать. а тут все архивами выкладывается...
WebMan 10 лет назад #
NeBox 10 лет назад #
Почему действительно на гитхаб не выложите? Удобнее же было бы.
Скорпион 10 лет назад #
Если конечно это не сложно.
WebMan 10 лет назад #
Отдельно файлы отладки без оптимизации я уже выкладывать не буду, только с ней. Вы можете сравнить файлы из этого поста с изменениями для оптимизации из моих прошлых постов и вернуть всё как было в оригинальных файлах. Но зачем Вам более медленный движок?
Скорпион 10 лет назад #
Есть желание предложить пользователям совместное использование Ваше продукта и моего.
Для начала я хотел бы "вычленить" всю оптимизацию и подготовить "патч" для моего компонента.
Потом создать такой же "патч" для внедрения Вашего продукта "одним" нажатием. Для возможности включения/выключения его одним нажатием.
Надеюсь Вы не против такого тандема? Все права на Ваш уникальный продукт исключительно Ваши.
Я только хочу помочь пользователям внедрение таких уникальных вещей "одним" нажатием клавиши.
WebMan 10 лет назад #
С компонентами класс отладки никак не пересекается. И по всем правилам, компоненты не должны менять файлы ядра, они пишутся в свои отдельные папки. Так что наши с Вами файлы пересекаться не должны. (Список изменённых файлов для отладки смотрите в топике)
Либо поясните в личке, что имеете ввиду.
Скорпион 10 лет назад #
Возможно Вы не в курсе про что я - гляньте.
WebMan 10 лет назад #
Я готов предоставить файлы патчей оптимизаций и отладки как только будет как-то устаканен их формат с учётом всего запланированного функционала "Системы".
Завтра постараюсь посмотреть Вашу систему в работе и отписаться об увиденном.
Скорпион 10 лет назад #
Раз Вас заинтересовал мой компонент - то вместо "вычленения" кода "оптимизации" и "отладки" бросаю все силы на реализацию двух моментов:
- загрузка/выгрузка файлов патчей
- возможность создания (а не изменения) файлов "патча".
Скорпион 10 лет назад #
WebMan 10 лет назад #
Олег Васильевич я 10 лет назад #