Отладка с помощью TotalTime, QueryTime, Queries на Fenom. Как?
        Вопрос пожалуй глупый, и всё-же хотелось бы вывести эти данные (TotalTime, QueryTime, Queries, которые в футере на этом сайте) средствами Феном. Возможно ли? И как это сделать?    
    
    
                                                        
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 14
                Пока никак, добавлю в новой версии скоро.            
                    
                Попробовал добавить, и выходит, что нет особого смысла.
1. Fenom выполняется раньше (вот здесь), чем выставляются оригинальные плейсхолдеры MODX, поэтому время выполнения выходит чуть меньше, чем на самом деле.
2. Оригинальные плейсхолдеры работают в любом случае, с любым парсером, потому что MODX просто меняет их через str_replace при выдаче страницы юзеру.
То есть, добавить это я могу, но только ради эстетического удовольствия, без особой пользы. Причем, использовать нужно будет вот так:
                    1. Fenom выполняется раньше (вот здесь), чем выставляются оригинальные плейсхолдеры MODX, поэтому время выполнения выходит чуть меньше, чем на самом деле.
2. Оригинальные плейсхолдеры работают в любом случае, с любым парсером, потому что MODX просто меняет их через str_replace при выдаче страницы юзеру.
То есть, добавить это я могу, но только ради эстетического удовольствия, без особой пользы. Причем, использовать нужно будет вот так:
{set $info = $_modx->getInfo()}
<pre>
	{$info.totalTime}
	{$info.queryTime}
	{$info.phpTime}
	{$info.queries}
</pre>
Как считаешь, нужно оно тебе в таком виде?            
                Я думаю, было бы здорово, если б и это было в возможностях Феном, пусть даже чуть неточно. К тому-же если полностью отказаться от modx тегов в шаблонах и вообще везде, то наверное разница во времени будет практически неразличимой?
В любом случае решать тебе. Как бы то ни было — то, что ты сделал для нас — заслуживает уважения (не только Феном, хотя он поставил большой восклицательный знак)!
Начал интенсивно использовать при разработке include и extends. Шаблоны стали более гибче. Всё легко меняется в одном месте. Без кучи чанков. В общем я до сих пор под впечатлениями от того, как это просто внедрить, буквально несколькими кликами.
                    В любом случае решать тебе. Как бы то ни было — то, что ты сделал для нас — заслуживает уважения (не только Феном, хотя он поставил большой восклицательный знак)!
Начал интенсивно использовать при разработке include и extends. Шаблоны стали более гибче. Всё легко меняется в одном месте. Без кучи чанков. В общем я до сих пор под впечатлениями от того, как это просто внедрить, буквально несколькими кликами.
                Эти теги [^t^], [^q^] и остальные — они и не теги MODX. Они не разбираются парсером и не преобразовываются в объекты.
MODX просто заменяет их на значения при выводе документа, и делает это всегда, независимо ни от чего.
Значения в этих «тегах» более точны и быстрее работают, чем если получать эти данные через Fenom.
В общем, со всех сторон подумав, я считаю, что нужно продолжать использовать эти спецсимволы, а в {$_modx} добавить эту функцию getInfo() для проверки времени и запросов в текущий момент в любом месте кода — то есть, для проверки времени выполнения каких-то отдельных шаблонов и чанков.
А [^t^], [^q^], [^qt^] как обычно будут показывать итоговые цифры для всей страницы.
                    MODX просто заменяет их на значения при выводе документа, и делает это всегда, независимо ни от чего.
Значения в этих «тегах» более точны и быстрее работают, чем если получать эти данные через Fenom.
В общем, со всех сторон подумав, я считаю, что нужно продолжать использовать эти спецсимволы, а в {$_modx} добавить эту функцию getInfo() для проверки времени и запросов в текущий момент в любом месте кода — то есть, для проверки времени выполнения каких-то отдельных шаблонов и чанков.
А [^t^], [^q^], [^qt^] как обычно будут показывать итоговые цифры для всей страницы.
                Можно обновляться до версии 2.1.4-pl и читать документацию по новому методу.            
                    
                Спасибо большое, Василий. Я вот иногда замечаю такое, что если на странице или в шаблоне прописано только {include 'test'} или {extends 'test'}, то он не парсит его, а выводит прям как есть текстом. Это глюк или я что-то не пойму?
Обновлено: А вот если ниже дописать {block 'test'} {/block}, то всё приходит в норму и Феном включается.
                    Обновлено: А вот если ниже дописать {block 'test'} {/block}, то всё приходит в норму и Феном включается.
                Да, там проверка на синтаксис тегов Fenom, чтобы не гонять через него все чанки подряд.
Видимо, её нужно улучшить.
                    Видимо, её нужно улучшить.
                Ещё, если в настройках указано «cache_resource=1» (по сути, по-умолчанию), то при кешированном вызове сниппета через $_modx->runSnippet при первой загрузке после обновлённого кеша сниппет отрабатывает, а при последующих он как-будто вообще не выполняется. Даже из кеша. Это, я так понимаю, точно баг?            
                    {$_modx->runSnippet('pdoMenu', ['parents' => 0, 'showLog' => 1])}Нет проблем. Работает и результат сохраняется в файле кэша ресурса.Создай тестовый сайт и продемонстрируй там, что именно не работает.
                Вот так если Minifyx вызвать в чанке Theme.Bootstrap — Head, то воспроизводится:
Обновлено: Но дело не в cssPlaceholder/jsPlaceholder, и без них тоже самое происходит.
                    {$_modx->runSnippet('MinifyX', [
	'minifyCss'			=> 1,
	'cssPlaceholder'	=> 'minifyxCss',
	'registerCss'		=> 'placeholder',
	'cssSources'		=> '
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/css/bootstrap.min.css,
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/css/add.css
	',
	'minifyJs'			=> 1,
	'jsPlaceholder'		=> 'minifyxJs',
	'registerJs'		=> 'placeholder',
	'jsSources'			=> '
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/js/bootstrap.min.js
	'
])}
{$_modx->getPlaceholder('minifyxCss')}
{$_modx->getPlaceholder('minifyxJs')}Обновлено: Но дело не в cssPlaceholder/jsPlaceholder, и без них тоже самое происходит.
                Ты просто не задумываешься о том, что и как работает. Если кэшированный сниппет не вызывается, откуда возьмутся его плейсхолдеры в системе?
Используй
                    Используй
'registerJs' => 'default',
'registerCss' => 'default',Это пропишет готовые HTML теги в тело страницы и они будут в кэше.            
                Можешь не верить, но я задумываюсь. По крайней мере стараюсь.
Перед тем, как ты ответил, я обновил предыдущий пост и написал, как раз о том, о чём написал ты. Дело не в этом, Василий, я это прежде всего проверил.
Вот так тоже самое:
                    Перед тем, как ты ответил, я обновил предыдущий пост и написал, как раз о том, о чём написал ты. Дело не в этом, Василий, я это прежде всего проверил.
Вот так тоже самое:
{$_modx->runSnippet('MinifyX', [
	'minifyCss'			=> 1,
	'registerCss'		=> '1',
	'cssSources'		=> '
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/css/bootstrap.min.css,
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/css/add.css
	',
	'minifyJs'			=> 1,
	'registerJs'		=> '1',
	'jsSources'			=> '
		' ~ $_modx->config.assets_url ~ 'components/themebootstrap/js/bootstrap.min.js
	'
])}            
                Да, ты прав.
Фокус в том, что обработка тегов Fenom на странице происходит после того, как MODX копирует все зарегистрированные стили и скрипты в кэш ресурса.
Так что добавил дополнительную обработку можно обновляться.
                    Фокус в том, что обработка тегов Fenom на странице происходит после того, как MODX копирует все зарегистрированные стили и скрипты в кэш ресурса.
Так что добавил дополнительную обработку можно обновляться.
                Супер! Спасибо, Василий!            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.