Кешируются ли файловые сниппеты?
Использую файловые элементы pdoTools, в документации написано что
Есть шаблон для ресурса, в нем

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

и чего то никак не могу победить, хотя бы на время разработки отключить кеш, а вообще нужно отключить кеширование этих сниппетов и на продакшине, так как они будут организовывать логику фильтрации.
Что я делаю не так, почему при отключенном системном кеше, при условии что в документации написано что файловые элементы не кешируются, оно все такие кешируется?
Спасибо.
Файловые сниппеты не кэшируются, но можно включить кэширование скомпилированных шаблонов 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.phpecho "hello world";В системных настройках отключил кеширование 
однако, вывод сниппета кешируется. Иду изменяю текст echo но изменений не вижу, пока не очищу кеш.
Данные кешируются вот сюда

и чего то никак не могу победить, хотя бы на время разработки отключить кеш, а вообще нужно отключить кеширование этих сниппетов и на продакшине, так как они будут организовывать логику фильтрации.
Что я делаю не так, почему при отключенном системном кеше, при условии что в документации написано что файловые элементы не кешируются, оно все такие кешируется?
Спасибо.
Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Fenom используется в pdoTools не как полноценный шаблонизатор, а как дополнительный парсер шаблонизатора MODX. Т.е. контент парсится двумя шаблонизаторами! Но главным является именно последний. А для него нет понятия «файловый сниппет». Есть обычный сниппет, который хранится в БД. Но сниппет — это php код. А код, чтобы он выполнился, нужно подключать через конструкцию include. Для этого создается файл в папке includes/elements/modsnippet/. И уже он потом подключается.
Когда вызывается файловый сниппет, pdoTools создаёт обычный сниппет MODX с именем в виде хеша. И MODX подготавливает его к исполнению — сохраняет в кэш, чтобы заинклюдить.
Но хочу отметить, что это не кэш результата сниппета. Это кэш кода сниппета. Т.е. создается файл для кэширования другого файла!!! Сам файловый сниппет никогда не кэшируется! Даже если ты очень преочень захочешь.
Это и куча других косяков реализации Fenom заставила меня написать ZoomX. В нём я заморочился этой темой и написал отдельный механизм для файловых элементов. Плюс они могут кэшироваться. Плюс за всё отвечает только один шаблонизатор. Поэтому я всем разработчикам, стремящимся работать по фуншую, советую ставить pdoTools из-за его сниппетов (Fenom сразу выключить) и ZoomX из-за правильного механизма шаблонизации и роутинга.
Все верно, в файле с «кешем» лежит код сниппета.
И да, наверное пора перестать мне жаловаться на отсутствие времени и изучить ваш ZoomX.
Идеально — сравнение скорости работы (время рендера на одинаковом хостинге) и удобства работы с кодом для сайтов на синтаксисе modx-парсера или fenom (совсем в мечтах: оба) с тем, как то же самое реализуется на ZoomX (с каким-нибудь, на ваш аргументированный вкус ;-), шаблонизаторе, им поддерживаемым )
Раз не даёте ссылок, может сами потестируете нагрузку через loadimpact/k6 или может @Сергей Шлоков или @Николай Савин уже таким увлекался, но нам не показал? ;-)
пока что слабонедостаточно.После анонса pdoTools со сравнительными таблицами, прям захотелось брать и только на нём и делать, особенно из-за крутого прироста в скорости fenom за счет адекватной обработки условий с фильтрами вывода типа Пока такого сравнения нет, очень сложно мотивировать modx-программиста брать на вооружение нечто новое «не ясно/очевидно зачем»…