Dmitry Rodionov
С нами с 01 сентября 2013; Место в рейтинге пользователей: #155Redis Cache (xPDORedisCache)
Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.
в общем логе:[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error: Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770
Есть какие идеи куда копать?UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
pdoTools и более 60 TV параметров в запросе
При попытке выбрать 100 TV полей pdoTools ничего не выводит кроме mysql ошибке в логе:
«Too many tables; MySQL can only use 61 tables in a join»
Есть ли быстрый способ это обойти или все же придется писать свой процессинг?
P.S. Сто полей конечно много, но что поделать, если у товара столько параметров, управлять ими через migx не удобно, да и заливать их туда тоже (спарсил со старого сайта).
«Too many tables; MySQL can only use 61 tables in a join»
Есть ли быстрый способ это обойти или все же придется писать свой процессинг?
P.S. Сто полей конечно много, но что поделать, если у товара столько параметров, управлять ими через migx не удобно, да и заливать их туда тоже (спарсил со старого сайта).
Потеря данных в сессии
Давно уже задаюсь вопросом почему теряются данные в сесии и как этого избежать. Гуглил но ничего толкового не нашел.
Фильтрация TV параметров в MS2
при установке параметра в сниппете msProducts в такое значение
Можно ли это как то обойти через where запрос?
&tvFilters=`DATE(trade_day)==CURDATE()`
в запросы выходитDATE(`TVtrade_day`.`value`) LIKE 'CURDATE()'
CURDATE() берется в кавычках, а надо без, как можно это обойти?Можно ли это как то обойти через where запрос?