Кэширование в pdotools
вобщем столкнулся с проблемой, кто нельзя отключить файловое кэширование в pdotools на конкретные ресурсы. Если снять галочку кэширования ресурса, то кэша нет в папке resource, а вот кэш pdotools присутствует. может быть кто нибудь знает есть ли параметр отключения?
Комментарии: 25
&cache 0 Кэширование результатов работы сниппета.
&cacheTime 3600 Время актуальности кэша, в секундах.
&cache_user 1 Принудительно устанавливает ID посетителя, по-умолчанию кеширование производится с учетом ID посетителя
не совсем понял что у вас написано
Вы просили параметры отключения, я скинул! Что не так!?
Прочитайте нормально документацию по Pdotools!
Прочитайте нормально документацию по Pdotools!
вопрос был в отключении кэша отдельного ресурса
Это очень круто, почитал, думаю стоит изучить и внедрить, но быстро мигрировать тем более на бетта версию не выйдет :(
вообще то что получил сейчас это очень большой кэш в папке default/pdotools, на одну страницу приходится по 2 файла кэша, а с учетом того что у меня много ресурсов, + много виртуальных страниц, весь объем диск съедаю за раз. кэшировать все необходимости нет, только посещаемые страницы. но отключить кэш или принудительно включить не могу. в настройках есть только общая настройка pdotools_fenom_cache, отключив которую кэш не формируется, но и основные страницы работают медленно. Как вариант переписать xpdocachemanager.class.php, но там объект modx не содержит ресурса, и управлять кэшированием например через стандартную настройку ресурса возможности нет.
вообще то что получил сейчас это очень большой кэш в папке default/pdotools, на одну страницу приходится по 2 файла кэша, а с учетом того что у меня много ресурсов, + много виртуальных страниц, весь объем диск съедаю за раз. кэшировать все необходимости нет, только посещаемые страницы. но отключить кэш или принудительно включить не могу. в настройках есть только общая настройка pdotools_fenom_cache, отключив которую кэш не формируется, но и основные страницы работают медленно. Как вариант переписать xpdocachemanager.class.php, но там объект modx не содержит ресурса, и управлять кэшированием например через стандартную настройку ресурса возможности нет.
Это обычная системная настройка. Ей можно манипулировать в процессе загрузки. Создайте плагин на событие OnHandleRequest и в нем прописывайте нужное значение согласно вашей логике
if ($modx->resource->id == 100) {
$modx->setOption('pdotools_fenom_cache', false); // отключить кэширование чанков для ресурса 100
}
Неработает, тк в классе pdoTools в setConfig устанавливается
$this->config['useFenomCache'] = $this->modx->getOption('pdotools_fenom_cache', null, false);
До вызова OnHandleRequest
и уже проверка идет в методе fenom
if (!empty($this->config['useFenomCache'])) {
Поэтому установка этого свойства конечно меняет конфиг, но fenom его читает раньше
$this->config['useFenomCache'] = $this->modx->getOption('pdotools_fenom_cache', null, false);
До вызова OnHandleRequest
и уже проверка идет в методе fenom
if (!empty($this->config['useFenomCache'])) {
Поэтому установка этого свойства конечно меняет конфиг, но fenom его читает раньше
Да, есть такое дело. Хотел исправить и забыл. В следующей версии постараюсь не забыть.
попробовал решить так в плагине, но не работает, может подскажите костыль
case 'OnHandleRequest':
if ($modx->resource->cacheable == false) {
$pdoTools = $modx->getService('pdoTools');
$pdoTools->config['useFenomCache'] = null;
}
Получилось вернутся к данному вопросу?
Неа. Я сейчас с MODX практически не работаю. А в ишу на гитхабе особо важного ничего нет.
Я сейчас с MODX практически не работаюТо есть развития ZoomX не ждать?(
Я сейчас плотно занят Laravel/Vue. Планы есть. Задачи в бэклоге тоже. Даже начал перевод под MODX3. Но времени катастрофически не хватает. ( И мотивации.
Laravel подходит для создания несложных сайтов или тут лучше cms? А то MODX умирает похоже(
все зависит от задачи, универсальной таблетки нет.
Для несложный сайтов конечно лучше CMS. MODX одна из лучших. У него только одна беда — он не развивается. У нас в компании есть проекты на MODX и на Битрикс. По сравнению с последним MODX — это глоток чистого воздуха.
MODX одна из лучшихА какие ещё одни из лучших?)
Я могу сравнить только с теми, которые знаю — wordpress, joomla, битрикс. MODX проще. Но под капот лучше не заглядывать, чтоб не расстраиваться.
а в компанию случайно разработчики не требуются?)
Фронтов набирают. Vue/Nuxt уровня мидл и выше.
Я сейчас плотно занят LaravelЯ, конечно, верю, что Laravel лучше MODX, иначе бы разработчики туда не уходили) С одной стороны, есть желание его изучить, на нём работы больше и зп выше. С другой стороны, не понимаю, какие плюсы я получу, перейдя с MODX+ZoomX на Laravel или другой фреймворк. Вот для вас лично какие преимущества?
Давай попробую через аналогии.
MODX — это поезд. Для простого сайта хватит пары вагонов. Нужно просто завести его и он поедет. И ехать он будет достаточно быстро. Если нужна дополнительная функциональность — добавляешь вагоны. Чем больше вагонов, тем тяжелее поезду. Зафиксируем: MODX — это транспорт.
Laravel — это завод по изготовлению транспорта. Ты можешь сам сделать любой нужный транспорт под свою задачу. Хочешь самолет, хочешь гоночную машину, хочешь тот же поезд, но с 3-мя локомотивами, блэкджеком и плюшками.
Соответственно нужны другие знания. Это другой уровень. Но сразу сесть и поехать ты не сможешь. Придётся попотеть и приложить все усилия, чтобы не получился велосипед на камазовских покрышках или гоночная машина с квадратными колёсами.
А если без аналогии. На Laravel можно написать любую CMS (в том числе и MODX). Обратное невозможно.
П.С. ZoomX позволяет сделать окна в поезде отрывающимися, чтобы ехать было более комфортно, чтобы дышать стало чуть свободнее. Но переделать поезд в самолёт он не может.
П.П.С. Лично я не вижу в ближайшем будущем предпосылок отказа от CMS. Их доля будет неуклонно падать из-за того, что появляются другие инструменты. Но полного отказа от них не будет. Это очень удобный инструмент для быстрой разработки сайтов.
MODX — это поезд. Для простого сайта хватит пары вагонов. Нужно просто завести его и он поедет. И ехать он будет достаточно быстро. Если нужна дополнительная функциональность — добавляешь вагоны. Чем больше вагонов, тем тяжелее поезду. Зафиксируем: MODX — это транспорт.
Laravel — это завод по изготовлению транспорта. Ты можешь сам сделать любой нужный транспорт под свою задачу. Хочешь самолет, хочешь гоночную машину, хочешь тот же поезд, но с 3-мя локомотивами, блэкджеком и плюшками.
Соответственно нужны другие знания. Это другой уровень. Но сразу сесть и поехать ты не сможешь. Придётся попотеть и приложить все усилия, чтобы не получился велосипед на камазовских покрышках или гоночная машина с квадратными колёсами.
А если без аналогии. На Laravel можно написать любую CMS (в том числе и MODX). Обратное невозможно.
П.С. ZoomX позволяет сделать окна в поезде отрывающимися, чтобы ехать было более комфортно, чтобы дышать стало чуть свободнее. Но переделать поезд в самолёт он не может.
П.П.С. Лично я не вижу в ближайшем будущем предпосылок отказа от CMS. Их доля будет неуклонно падать из-за того, что появляются другие инструменты. Но полного отказа от них не будет. Это очень удобный инструмент для быстрой разработки сайтов.
А админки для Laravel готовые используете? Если да, то какие?
Судя по стэктрейсу
string(810) "#0 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdotools.class.php(45): pdoTools->setConfig(Array) #1 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdoparser.class.php(24): pdoTools->__construct(Object(modX)) #2 /usr/share/nginx/www/core/xpdo/xpdo.class.php(1236): pdoParser->__construct(Object(modX), Array) #3 /usr/share/nginx/www/core/model/modx/modx.class.php(719): xPDO->getService('parser', 'pdoParser', '/usr/share/ngin...') #4 /usr/share/nginx/www/core/model/modx/modelement.class.php(566): modX->getParser() #5 /usr/share/nginx/www/core/model/modx/modx.class.php(1673): modElement->getProperties() #6 /usr/share/nginx/www/core/model/modx/modx.class.php(568): modX->invokeEvent('OnMODXInit', Array) #7 /usr/share/nginx/www/index.php(50): modX->initialize('web') #8 {main}"
после события OnMODXInit
string(810) "#0 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdotools.class.php(45): pdoTools->setConfig(Array) #1 /usr/share/nginx/www/core/components/pdotools/model/pdotools/pdoparser.class.php(24): pdoTools->__construct(Object(modX)) #2 /usr/share/nginx/www/core/xpdo/xpdo.class.php(1236): pdoParser->__construct(Object(modX), Array) #3 /usr/share/nginx/www/core/model/modx/modx.class.php(719): xPDO->getService('parser', 'pdoParser', '/usr/share/ngin...') #4 /usr/share/nginx/www/core/model/modx/modelement.class.php(566): modX->getParser() #5 /usr/share/nginx/www/core/model/modx/modx.class.php(1673): modElement->getProperties() #6 /usr/share/nginx/www/core/model/modx/modx.class.php(568): modX->invokeEvent('OnMODXInit', Array) #7 /usr/share/nginx/www/index.php(50): modX->initialize('web') #8 {main}"
после события OnMODXInit
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.