Я автоматизую конфігурації випусків, завантажуючи Mage в декілька сценаріїв випуску. В кінці сценаріїв мені потрібно очистити кеш Magento.
Чи є спосіб очистити кеш-пам'ять за допомогою одного з Mage
класів чи методів?
Я автоматизую конфігурації випусків, завантажуючи Mage в декілька сценаріїв випуску. В кінці сценаріїв мені потрібно очистити кеш Magento.
Чи є спосіб очистити кеш-пам'ять за допомогою одного з Mage
класів чи методів?
Відповіді:
Спробуйте наступний код, щоб програмати кеш програмно
Mage::app()->cleanCache()
або
Mage::app()->getCacheInstance()->flush();
Якщо ви дуже хотіли, ви можете також очистити лише один або кілька типів кешу. Це насправді, як це робить розділ адміністратора. ПідMage_Adminhtml_CacheController::massRefreshAction
Ви можете бачити, що він перебирає всі параметри types
і викликає наступні
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
Можливі наступні типи:
А їх можна повернути зателефонувавши Mage::app()->getCacheInstance()->getTypes()
Швидкий зовнішній скрипт, щоб очистити весь кеш:
<?php
require_once './app/Mage.php';
umask(0);
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $value) {
Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
echo "{$type} </br>";
}
echo 'done';
} catch (Exception $e) {
echo $e->getMessage();
}
Наші ми могли використовувати n98-magerun . Тим більше, що ніколи не слід промивати кеш-пам'ять під час виконання сценаріїв розгортання. Також перегляньте sys:setup:incremental
підкоманду для більш контрольованого виконання сценаріїв налаштування Magento.
Якщо вам дійсно потрібно очистити всі сховища кеш-пам'яті, використовуйте наступний код,
Mage::app()->getCacheInstance()->flush();
Тут функція Flush викликає функцію кеш-пам'яті magento за замовчуванням. Якщо вам потрібні додаткові роз'яснення, зверніться до наступного URL-адреси.