Как очистить кеш в Opencart из PHP

Мне нужно очистить кеш при определенных условиях из кода PHP. Как я могу это сделать. Я знаю, что в движке opencart есть объект Cache, но как правильно удалить кеш.
Или можно удалить только папки?
Дайте совет.


person Community    schedule 16.02.2015    source источник


Ответы (4)


В OpenCart есть 3 места для хранения кеша

  1. кеш изображений находится по адресу public_html/image/cache

  2. если у вас vQmod public_html/vqmod/vqcache

  3. системный кэш (данных) public_html/system/cache

Вы можете удалить файлы в этих папках — не удаляйте cache папки — только содержимое внутри.

Надеюсь, это поможет.

person Brian    schedule 16.02.2015

Что вам нужно сделать, так это взглянуть на некоторые модели в папке admin и проверить некоторые методы добавления/удаления, то есть в admin/model/catalog/product.php вызывается метод addProduct():

$this->cache->delete('product');

где 'product' — это ключ, определяющий, какой кеш нужно удалить. Другими ключами могут быть category, language, currency и т. д.

person shadyyx    schedule 16.02.2015
comment
Ваше решение не работает. Например: вы заменяете основное изображение товара, но сохраняете его название. Очистка кеша с помощью $this->cache->delete('product') не влияет на кеш изображения - изображение все равно будет обслуживаться со старым img. - person userlond; 28.11.2015
comment
@userlond OP не спрашивал о кеше изображений, который находится в вашем браузере, кстати. Во всех современных браузерах нажатие CTRL + SHIFT + DELETE откроет окно/страницу, где вы можете удалить кеш браузера, но это не имеет ничего общего с OpenCart (т.е. ваш комментарий полностью ОТ). - person shadyyx; 30.11.2015
comment
Просто для уточнения. Я изменил изображение товара своим кодом, но сохранил имя изображения (был сделан вызов $this-›cache-›delete('product')). OC 2.0 по-прежнему обслуживает старый образ из папки image/cache. т.е. очистка image/cache помогла мне ... Так что это хорошее дополнение к вашему ответу. - person userlond; 01.12.2015
comment
Уведомление о кэшировании браузера также полезно в некоторых ситуациях. - person userlond; 01.12.2015

У меня это работает. Перейдите к: Шаг 1. В панели администратора нажмите Dashboard, и вы получите gearing icon в правом верхнем углу и нажмите на него. Вы видите Developer Settings. И вы найдете Cache и Action. Итак, в кэше нажмите Off и нажмите Refresh Icon в действии. Шаг 2. Admin > Extensions > Modifications > нажмите на Refresh Icon, который вы увидите в правом верхнем углу, и проверьте еще раз.

person Y. Joy Ch. Singha    schedule 30.09.2018

Вы также можете сделать это вручную или очистив файлы папки кеша с помощью php-скрипта.

Если вы используете версию, отличную от 3.X, то папка кеша находится в: System › storage › cache

Если это версия 3.X, то она попала в папку хранилища, куда бы вы ее ни переместили, тогда внутри этой папки есть папка кеша.

Очистите данные папки кеша и перезагрузите страницу магазина. Это решение сработало для меня. Спасибо, что задали этот вопрос.

person Kamlesh    schedule 19.07.2020