Ответы актуальны для крайней версии «Расширенной отладки».
«Расширенная отладка» не оказывает влияния на работу функций CMS и её компонентов. Она только ведёт учёт происходящих в системе действий.Влияет ли «Расширенная отладка» на функционирование InstantCMS 2?
«Расширенная отладка» не изменяет базу данных, кроме добавления стандартной записи о новом установленном компоненте.Какие изменения вносит «Расширенная отладка» в систему?
Начиная с версии 14.1 отладка может работать в двух режимах: стандартном — практически без изменения ядра, и полном — с патчами ядра для сбора дополнительных отладочных данных. Подробнее про режимы и изменяемые файлы можете почитать на странице описания режимов.
1. Проверьте настройки отладки в Админке. Должна быть включена галка «Включить режим отладки» на вкладке «Общие» страницы настроек отладки или на вкладке "Отладка" страницы настроек сайта.Установил отладку, но информации отладки на сайте не вижу. Что не так?
2. Убедитесь, что вы смотрите страницу под пользователем с админскими правами на сайте. Или отключите галку «Показывать отладочную информацию только администраторам», если вам нужно смотреть информацию отладки под обычным пользователем или гостем.
3. Убедитесь, что «Расширенная отладка» включена на странице "Компоненты" в Админке.
4. Если есть таблицы, но не видно лог, проверьте, какие категории лога выбраны для показа на вкладке "Общие". Если выбрано показывать только точки отладки dbg(), а вы их не ставили на страницу, то лог будет пустым. Выберите другие интересующие вас категории лога или просто отметьте чекбокс "Все".
Очень хороший ответ по решению ситуации с помощью встроенной отладки дал r2 в статье Тайна “белого экрана”.Пустой/белый экран вместо страницы, нет возможности зайти в настройки "Расширенной отладки" и включить её. Что делать?
Для вывода на экран текста ошибок PHP также можно использовать и расширенную отладку, если она установлена. Обе отладки включаются одинаково опцией 'debug' в файле /system/config/config.php:
'debug' => 1,
'debug_admin_only' => '', 'debug_on_error' => 1, 'error_display' => 1, 'error_critical_mail' => '', 'error_critical_msg' => '', 'error_critical_notice' => '',
Все опции файла конфига /system/config/debugx.php описаны в файле /system/core/debugxconfig.php в примечаниях элементов массива $cfg_default.Где посмотреть описание опций "Отладки" для ручного редактирования файла настроек?
В расширенной отладке некоторые значения отличаются от значений стандартной отладки, Например:Почему некоторые цифры в дефолтной и расширенных отладках различаются?
1. Время выполнения скрипта показывается чуть точнее. Во-первых, фиксация времени окончания работы скрипта происходит реально после выполнения всех действий скрипта, а не почти в конце. Во-вторых, учитывается и вычитается из времени страницы время отладки. Разница в показаниях дефолтной отладки и расширенной может составлять около 1-3%. Для большинства случаев это не критично, но иногда знать точные цифры нужно.
Дополнительно выводится время загрузки PHP-модуля Апача.
2. Объём используемой памяти PHP-скрипта в дефолтной отладке показывается на момент окончания работы скрипта. Точнее, на момент чуть раньше окончания. В расширенной отладке основное отображаемое значение памяти – это пиковое (максимальное) за всё время работы скрипта. Так как во время работы часто бывают ситуации, когда память сначала выделяется, а потом очищается и забирается из использования, то судить о потреблении памяти лучше по пиковому значению — это позволит точнее планировать требуемую память при покупке хостинга.
Кроме того, нужно учитывать, что память выделяется сервером поблочно. В расширенной отладке дополнительно выводятся блочные значения памяти.
Кроме пикового, в расширенной отладке отображаются также начальное и конечное значения памяти.
Так как при запросе аяксом данные чаще всего возвращаются не в виде готовой страницы, а в виде сериализованного набора данных, то выводить в него информацию отладки неразумно. Аналогично и при запуске через Крон нет необходимости в выводе информации отладки, поэтому и тут она отключена.Почему отладочная информация не показывается при запросе данных аяксом и при выполнении задач в планировщике?
Вывод всей собранной информации расширенная отладка осуществляет под готовой страницей используя событие 'engine_stop'.
В зависимости от набора используемых вами компонентов, список возможных событий будет разным. Чтобы узнать, какие события вообще могут возникать в вашем экземпляре системы, нужно по её php-файлам сделать поиск строки 'cmsEventsmanager::hook'. Вы увидите все места, откуда вызываются хуки и названия этих хуков. Автоматически сканировать файлы и создавать такую таблицу при работе отладки на сайте неразумно, поэтому и не делается.В «Расширенной отладке» можно посмотреть список всех зарегистрированных обработчиков событий (хуков) и список всех произошедших на странице событий. А как получить список всех событий, доступных в InstantCMS 2?
«Расширенная отладка» поддерживает наследование шаблонов. Её шаблоны и стили оформления находятся в дефолтной теме в папке /templates/default/controllers/debugx и используются для всех шаблонов. Скопируйте нужные файлы оттуда в свою тему и откорректируйте вывод и стили под свои нужды.У меня другой шаблон (не default). Информация об отладке выводится некрасиво
При обновлении движка, не заменяющем файл класса расширенной отладки /system/core/debugging.php новым дефолтным классом, расширенная отладка продолжит работать в стандартном или смешанном режиме в зависимости от наличия патчей ядра для сбора отладочных данных и от изменений в обновлённом движке. Но для полноценной работы «Расширенной отладки» нужно будет обновить её до новой версии. То есть, больших проблем не будет.Что произойдёт, если стандартным образом обновить CMS с уже установленной расширенной отладкой?
Если при обновлении движка будет заменён файл класса расширенной отладки /system/core/debugging.php и при этом останутся патчи ядра полного режима отладки, то появятся ошибки при работе дефолтной отладки. Решить эту проблему может только разработчик движка (Fuze), добавив «в коробку» механизм выбора встроенной или альтернативной отладки.
Поэтому перед обновлением движка восстанавливайте дефолтные файлы ядра, как написано на странице описания режимов работы.
Скорее всего при обновлении был заменён файл класса расширенной отладки /system/core/debugging.php на новый дефолтный. Нужно заменить дефолтный файл на "расширенный" подходящей версии.После обновления движка InstantCMS 2 появились ошибки в дефолтной и в расширенной отладке
Компонент отладки ставится обычным пакетом через Админку сайта. Никаких изменений в базе данных, кроме стандартной записи о новом компоненте не производится. Заменяется один системный файл – класс отладки /system/core/debugging.php, а в системные папки добавляются класс конфига отладки и сам конфиг. Поэтому при установке через Админку будет показано предупреждение про изменение системных файлов – это нормально.Как установить «Расширенную отладку»?
Для включения полнофункционального режима нужно поставить пакет патчей ядра для сбора дополнительных данных. Подробнее смотрите на странице описания режимов отладки.
При удалении «Расширенной отладки» с сайта нужно:Как удалить расширенную отладку с сайта?
1. Если использовались патчи полного режима, то заменить модифицированные файлы ядра на оригинальные файлы вашей версии InstantCMS 2 (смотрите страницу описания режимов работы).
2. Удалить «Расширенную отладку» как обычный компонент, включая стандартное ручное удаление всех файлов компонента по списку, выводимому в Админке после окончания удаления.
3. Скопировать файл /system/core/debugging.php из архива установщика InstantCMS 2 вашей версии в папку /system/core, заменив файл от «Расширенной отладки».
Да.Будет ли «Расширенная отладка» бесплатной и далее?
По возможности буду поддерживать компонент в актуальном состоянии. Но даже если я пропаду надолго, отладка будет работать в стандартном режиме на всех новых версиях Двойки, пока не будет сильно изменена система встроенной отладки. А модифицировать несколько файлов ядра для полного режима может любой начинающий программист простым сравнением различий и переносом их в новые файлы. Все мои правки файлов ядра выделены соответствующими комментариями в коде модифицированных файлов.Выход новых версий и поддержка «Расширенной отладки»
Не хочу показаться пафосным, но скажу, как чувствую:Зачем тебе (WebMan-у) это нужно?
Хочу отблагодарить разработчиков Инстанта по мере своих возможностей небольшим вкладом в развитие этой прекрасной CMS.
Хочу помочь лучше разобраться в InstantCMS 2 вебмастерам и программистам. Да и сам походу её изучаю.
Хочу помочь разработчикам сторонних компонентов и шаблонов сделать их продукты качественнее. Я тоже покупаю сторонние разработки и пользуюсь бесплатными компонентами для Двойки, поэтому заинтересован в том, чтобы толковых разработчиков было больше.
1. Пользуйтесь отладкой и сообщайте мне об обнаруженных ошибках.Чем я могу помочь «Расширенной отладке»?
2. Предлагайте новые идеи и решения. Если они будут интересны и важны, я постараюсь добавить их в «Отладку».
3. Если хотите, чтобы «Расширенная отладка» вообще не изменяла файлы ядра для облегчения установки/удаления отладки и обновления ваших сайтов – попросите разработчика Инстанта Fuze добавить в движок механизм выбора варианта отладки и сбор дополнительных данных из ядра. Свои варианты кода для этого я ему предоставил, но готов использовать любой другой вариант — лишь бы он был.
4. Оставьте честные отзывы и поставьте оценку на странице «Расширенной отладки» в «Каталоге дополнений».
Задайте его в этой или другой подходящей теме по использованию отладки в комментариях или в личном сообщении мне на этом сайте. Если Ваш вопрос будет полезен многим людям, я добавлю его в эти «ЧаВо».У меня есть вопрос по «Расширенной отладке». Как мне получить на него ответ?
Реклама #
vikont 8 лет назад #
Не хочу показаться неблагодарным, но есть некоторые нюансы в работе вашего дополнения влияющие на работу сайта!
У меня стоит шаблон NEWS Олега Васильевича, который для работы шаблона изменил файл /system/controllers/content/widgets/list/options.form.php
Вы тоже вносите изменения в этот файл. В итоге шаблон теряет часть своих функций.
Как вас помирить?
Вот его вариант кода
vikont 8 лет назад #
Loadырь 8 лет назад #
WebMan 8 лет назад #
По первому вопросу. Добавленная мной в файл /system/controllers/content/widgets/list/options.form.php строка
Loadырь подсказал Вам правильно. Спасибо!
По второму. У Вас не загружаются языковые константы от модулей Unilang и Onliner. Проверьте наличие в Вашей системе файлов переводов \system\languages\ru\controllers\unilang\unilang.php и \system\languages\ru\controllers\onliner\onliner.php и присутствие в них констант с Вашего скрина.
vikont 8 лет назад #
В свете двойного использования файлов системы разными расширениями прошу подсказать как поступить с файлом bootstrap.php?
Этот файл правите и вы и Иван Шкута в компоненте UniLang
Вот его файл
Сам движек ICMS2 очень интересный, спасибо разработчику и всем кто старается расширить его возможности! Но может быть есть смысл подумать как сделать, чтобы любые расширения не затрагивали системные файлы. Думаю от этого интерес к ICMS2 станет еще больше.
WebMan 8 лет назад #
По bootstrap.php. Ваш код аналогичен оригинальному файлу системы, без каких либо изменений. Можете смело заменить его на файл из отладки. Либо уточните, какие именно правки этого файла сделаны в компоненте UniLang.
Старый балбес 8 лет назад #
Я для магазина gen-cart выполняю любые мне желаемые действия с системой , не трогая ( не изменяя положение и содержание реального файла.
Использую класс vqmod.
Класс создает копию системного файла ( с измененными данными ) в кеше vqmod.Система будет работать с клонами файлов, И после обновления версии системы достаточно первой инициализации для создания нового клона.
.Все просто и замечательно . Достаточно чтобы разработчик ICMS постоянно следовал правилам привязки. То есть если в vqmod ранее была привязка к точке начала изменяемого фрагмента строки // initial lib , а в обновленной версии файлов этого сегмента привязки нет, то нужно просто переписать XML файл с новой привязкой.
// install new lib
Проще пока не встречал.
Есть много толкований в плане проблем. Но это очевидно. Все что найдено в коде - и не заменено вызовет неработоспособность , даже если замена частична.
Если тема интересует разработчиков ->
Инструмент для установки и редактирования vqmod xml могу дать безвоздмездно для системы Icms >2
Этот инструмент будет в моей магазине и будет занимать самое важное место, если разработчики ICMS не смогут в текущий период разработки (новой) системы соответствовать определенным требованиям стороннего разработчика.
Систему нельзя и не нужно удерживать в развитии, При разной поляризации видение развития путей системы , не достаточно удерживать разработчика на уровне типа полей (*) .
Нужно создать базовые точки отступа от базового сценария , на начальном этапе подключения библиотек это просто необходимо.
Возможность другой измененной инициализации это необходимость.
И решение с моно-системой немного начнет развиваться в сторону проектирования конкурентных систем .
WebMan 8 лет назад #
Кроме того, vqmod всё равно не решит вопрос о точном учёте начальных параметров работы, например. Он не позволит без хака зафиксировать стартовое время и начальное значение памяти. Или загрузить класс отладки ДО любых действий системы. Сейчас это делается в самых первых строчках index.php. Так что его всё равно придётся хакать даже при использовании vqmod. Или, например, вывод итоговой инфы отладки осуществляется через тот же index.php. Тоже нужен хак. Или нужно встраивание в систему "из коробки" поддержки "Отладки". Но тогда зачем делать частично? Что мешает сразу эту "Отладку" встроить целиком? Она ведь полезна и не снижает скорость работы.
Старый балбес 8 лет назад #
VQMOD располагается в своей директории и система к нему не имеет никакого отношения. Это Класс виртуализации файлов влияет на систему.
Создается директория vqmod , в ней запускается класс instal класса рекурсивной обработки файлов ugrsr.class,: который делает изменения во всех файлах которые указаны для ( поиск-изменение) ,
Пример паттерна
Старый балбес 8 лет назад #
.
WebMan 8 лет назад #
Ради одной отладки городить ещё и vqmod смысла, наверное, нет. А если его будут использовать несколько компонентов, каждый будет вносить свои правки в одни и те же файлы - тогда как будет работать? А если эти правки ещё и окажутся несогласованными?
Старый балбес 8 лет назад #
WebMan !
ВЫ видимо должны ваше решение оставить на рабочем уровне, без правок файлов.
Ваше решение довольно хорошее для начинающих программистов, безусловно оно поможет в выяснении определенных причинных проблем.
Я подготовлю рабочий сценарий и покажу Вам .
WebMan 8 лет назад #
Старый балбес 8 лет назад #
maxisoft 8 лет назад #
WebMan 8 лет назад #
maxisoft 8 лет назад #
Старый балбес 8 лет назад #
Но не при каждой загрузке страниц.
В дальнейшем класс vqmod при чтении файла , отдает файл клон из файла списка checked.cache. Единственное затраченное на это время
это нахождение элемента файла в массиве списка кеш файлов. Если принять во внимание что в разработке WebMan используется допустим 1 замена в одном файле, то время погрешности будет постоянным и очень маленьким чтобы брать это во внимание.