Фрагмент Catalogview Для Modx Evolution

Представляю вашему вниманию фрагмент каталогПросмотр .

Создан для новой версии Shopkeeper - 1.0 (для MODx Evolution), но теперь его можно использовать вместо него.

то же самое .

Я провел короткий тест производительности для обоих фрагментов.

У нас есть 200 документов.

Фрагменты не могут быть кэшированы, потому что.

требуется навигация по страницам.

Были взяты примерно средние значения после нескольких обновлений страницы.

Фрагмент вызова:

[!catalogView? &dataType=`documents` &tpl=`@FILE:assets/snippets/catalogView/chunks/catalogRow_chunk.tpl` &parents=`87` &paginate=`1` &display=`10` &sortBy=`pagetitle` &sortDir=`asc`!]



[!Ditto? &tpl=`@FILE:assets/snippets/catalogView/chunks/catalogRow_chunk.tpl` &parents=`87` &paginate=`1` &display=`10` &sortBy=`pagetitle` &sortDir=`asc`!]



10 документов на странице

каталогПросмотр
MySQL: 0,0722 с, 6 запросов, PHP: 0,2756 с, всего: 0,3479 с, документ получен из кэша
то же самое
MySQL: 0,1907 с, 32 запроса(ов), PHP: 0,4672 с, всего: 0,6579 с, документ получен из кэша


20 документов на странице

каталогПросмотреть
MySQL: 0,0735 с, 6 запросов, PHP: 0,2934 с, всего: 0,3669 с, документ получен из кэша
то же самое
MySQL: 0,2601 с, 52 запроса(ов), PHP: 0,5081 с, всего: 0,7683 с, документ получен из кэша
Как видите, Ditto выполняет 2 запроса MySQL для каждого документа на странице.

Чанк CatalogRow_chunk.tpl содержит один нестандартный модификатор PHx, который используется для изменения формата номера цены: [+цена:num_format+] .

Если его удалить, значения будут такие (20 документов): каталогПросмотр

MySQL: 0,0754 с, 5 запросов, PHP: 0,2794 с, всего: 0,3548 с, документ получен из кэша
то же самое
MySQL: 0,2218 с, 32 запроса(ов), PHP: 0,5411 с, всего: 0,7629 с, документ получен из кэша
Как ни странно, Дитто стал делать значительно меньше запросов.

Теперь для каждого документа существует один запрос.

CatalogView — на один распространённый запрос меньше.

Я не знаю, что это за запрос и почему он делается.

ПХx , потому что код модификатора находится в файле, а не в базе данных, но это не имеет значения.

Мне было интересно, почему для каждого модификатора PHx (нестандартного) при использовании Ditto делается один запрос в базу данных, ведь PHx кэширует такие модификаторы.

Все оказалось просто.

То же самое (2.1.0) не дает PHx возможности кэшировать модификаторы, поскольку при «рендеринге» каждого документа он создает новый объект класса PHx (функция $ditto-> рендер() ).

Ну и кроме этого, если не использовать модификаторы PHx из файлов, один запрос для каждого документа — это слишком много.

каталогПросмотр еще не очень хорошо протестирован, возможны ошибки.

Пожалуйста, сообщайте о любых найденных ошибках.

Скачать каталогView 1.0 RC1 P.S. Конечно, пора задуматься о MODx Revo, но я решил «добить» Shopkeeper для MODx Evo, выпустив версию 1.0 (сейчас бета).

Теги: #эволюция modx #shopkeeper #ditto #ModX

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.