Мне нужно очистить кеш при определенных условиях из кода PHP. Как я могу это сделать. Я знаю, что в движке opencart есть объект Cache, но как правильно удалить кеш.
Или можно удалить только папки?
Дайте совет.
Как очистить кеш в Opencart из PHP
Ответы (4)
В OpenCart есть 3 места для хранения кеша
кеш изображений находится по адресу
public_html/image/cache
если у вас vQmod
public_html/vqmod/vqcache
системный кэш (данных)
public_html/system/cache
Вы можете удалить файлы в этих папках — не удаляйте cache
папки — только содержимое внутри.
Надеюсь, это поможет.
Что вам нужно сделать, так это взглянуть на некоторые модели в папке admin
и проверить некоторые методы добавления/удаления, то есть в admin/model/catalog/product.php
вызывается метод addProduct()
:
$this->cache->delete('product');
где 'product'
— это ключ, определяющий, какой кеш нужно удалить. Другими ключами могут быть category
, language
, currency
и т. д.
$this->cache->delete('product')
не влияет на кеш изображения - изображение все равно будет обслуживаться со старым img.
- person userlond; 28.11.2015
image/cache
. т.е. очистка image/cache
помогла мне ... Так что это хорошее дополнение к вашему ответу.
- person userlond; 01.12.2015
У меня это работает. Перейдите к: Шаг 1. В панели администратора нажмите Dashboard
, и вы получите gearing icon
в правом верхнем углу и нажмите на него. Вы видите Developer Settings
. И вы найдете Cache
и Action
. Итак, в кэше нажмите Off
и нажмите Refresh Icon
в действии. Шаг 2. Admin > Extensions > Modifications >
нажмите на Refresh Icon
, который вы увидите в правом верхнем углу, и проверьте еще раз.
Вы также можете сделать это вручную или очистив файлы папки кеша с помощью php-скрипта.
Если вы используете версию, отличную от 3.X, то папка кеша находится в: System › storage › cache
Если это версия 3.X, то она попала в папку хранилища, куда бы вы ее ни переместили, тогда внутри этой папки есть папка кеша.
Очистите данные папки кеша и перезагрузите страницу магазина. Это решение сработало для меня. Спасибо, что задали этот вопрос.