Я автоматизирую конфигурации релизов, загружая 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 cache, если вам нужны дополнительные пояснения, обратитесь к следующему URL.