Кешируются ли файловые сниппеты?

Использую файловые элементы pdoTools, в документации написано что
Файловые сниппеты не кэшируются, но можно включить кэширование скомпилированных шаблонов Fenom, используя настройку pdotools_fenom_cache.
У меня она отключена.
Есть шаблон для ресурса, в нем
{include 'file:templates/category.tpl'}
Внутри category.tpl
{extends 'file:templates/layout.tpl'}
{block 'page'}
{'@FILE filter/filteredProducts.php'|snippet}
{/block}
Внутри filteredProducts.php
echo "hello world";
В системных настройках отключил кеширование


однако, вывод сниппета кешируется. Иду изменяю текст echo но изменений не вижу, пока не очищу кеш.
Данные кешируются вот сюда

и чего то никак не могу победить, хотя бы на время разработки отключить кеш, а вообще нужно отключить кеширование этих сниппетов и на продакшине, так как они будут организовывать логику фильтрации.

Что я делаю не так, почему при отключенном системном кеше, при условии что в документации написано что файловые элементы не кешируются, оно все такие кешируется?
Спасибо.
Александр Мельник
03 апреля 2022, 11:45
modx.pro
791
0

Комментарии: 12

Александр Мельник
03 апреля 2022, 11:52
0
Включить кэширование скриптов cache_scripts тоже выставлено в «Нет»
    Сергей Шлоков
    03 апреля 2022, 18:48
    +6
    Много раз уже всем объяснял почему так происходит.

    Fenom используется в pdoTools не как полноценный шаблонизатор, а как дополнительный парсер шаблонизатора MODX. Т.е. контент парсится двумя шаблонизаторами! Но главным является именно последний. А для него нет понятия «файловый сниппет». Есть обычный сниппет, который хранится в БД. Но сниппет — это php код. А код, чтобы он выполнился, нужно подключать через конструкцию include. Для этого создается файл в папке includes/elements/modsnippet/. И уже он потом подключается.

    Когда вызывается файловый сниппет, pdoTools создаёт обычный сниппет MODX с именем в виде хеша. И MODX подготавливает его к исполнению — сохраняет в кэш, чтобы заинклюдить.

    Но хочу отметить, что это не кэш результата сниппета. Это кэш кода сниппета. Т.е. создается файл для кэширования другого файла!!! Сам файловый сниппет никогда не кэшируется! Даже если ты очень преочень захочешь.

    Это и куча других косяков реализации Fenom заставила меня написать ZoomX. В нём я заморочился этой темой и написал отдельный механизм для файловых элементов. Плюс они могут кэшироваться. Плюс за всё отвечает только один шаблонизатор. Поэтому я всем разработчикам, стремящимся работать по фуншую, советую ставить pdoTools из-за его сниппетов (Fenom сразу выключить) и ZoomX из-за правильного механизма шаблонизации и роутинга.
      Александр Мельник
      03 апреля 2022, 19:13
      0
      Сергей, я именно от вас и ждал ответа, знаю что вы самый большой специалист по кешу.
      Все верно, в файле с «кешем» лежит код сниппета.
      И да, наверное пора перестать мне жаловаться на отсутствие времени и изучить ваш ZoomX.
        Николай Савин
        03 апреля 2022, 19:22
        +4
        Замечу Материал по ZoomX появляется периодически. На днях еще одна статья будет.
          deleted
          04 апреля 2022, 19:04
          +1
          Думаю тоже статьи про ZoomX писать, как считаете, какие темы лучше осветить? Чтоб с вашими не дублировались
            Николай Савин
            04 апреля 2022, 19:43
            0
            Я взял себе тему построение REST. Ты можешь например осветить тему шаблонизации и построения сайта на ZoomX, если разбираешься
              Дима Сайт old см. профиль
              04 апреля 2022, 22:41
              0
              Стесняюсь предложить осветить тему практического применения ZoomX для обычного многостраничного сайта.

              Идеально — сравнение скорости работы (время рендера на одинаковом хостинге) и удобства работы с кодом для сайтов на синтаксисе modx-парсера или fenom (совсем в мечтах: оба) с тем, как то же самое реализуется на ZoomX (с каким-нибудь, на ваш аргументированный вкус ;-), шаблонизаторе, им поддерживаемым )
                deleted
                05 апреля 2022, 06:06
                0
                Идеально — сравнение скорости работы (время рендера на одинаковом хостинге)
                Не заметил прироста скорости рендеринга по сравнению с сайтами на fenom с аналогичным функционалом на одном хостинге. Вот кол-во обращений к базе — есть разница, в ZoomX стремится к нулю при повторной загрузке страницы.
                  Дима Сайт old см. профиль
                  05 апреля 2022, 08:45
                  0
                  Ну значит сайт все же будет работать быстрее, и сможет держать гораздо большую нагрузку, особенно на не-ssd хостинге (такие ещё остались, особенно там где облачные диски для VPS/VDS — они медленные и база на них тормозит).

                  Раз не даёте ссылок, может сами потестируете нагрузку через loadimpact/k6 или может @Сергей Шлоков или @Николай Савин уже таким увлекался, но нам не показал? ;-)
                    Сергей Шлоков
                    05 апреля 2022, 09:25
                    0
                    В одной из своих статей давал данные по скорости. Делал тест из pdoTools. Прирост был около 50%. На самом деле это синтетический тест. Но общий выигрыш понятен.
                Дима Сайт old см. профиль
                04 апреля 2022, 22:52
                0
                Просто в анонсах и статьях всё пишут что ZoomX решает проблему работы modx с двумя парсерами при использовании fenom, я понимаю эти слова, но практическая польза, итоговый выигрыш, который по идее должен там быть, продемонстрирован пока что слабо недостаточно.

                После анонса pdoTools со сравнительными таблицами, прям захотелось брать и только на нём и делать, особенно из-за крутого прироста в скорости fenom за счет адекватной обработки условий с фильтрами вывода типа
                [[*pagetitle:is=`condition`:then=`yes`:else=`no`]]
                Пока такого сравнения нет, очень сложно мотивировать modx-программиста брать на вооружение нечто новое «не ясно/очевидно зачем»…
                  Сергей Шлоков
                  05 апреля 2022, 09:28
                  0
                  На самом деле выигрыш в скорости был не из-за Fenom, а за счёт pdoTools. Fenom как раз наоборот даёт лишнюю нагрузку и небольшой оверхед. Хотя в таблицах и указано наоборот. Лично я не смог повторить эти цифры. Да и тест, конечно, синтетический.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12