Automatyzuję konfiguracje wersji, ładując Mage'a w kilku skryptach wersji. Na końcu skryptów muszę opróżnić pamięć podręczną Magento.
Czy istnieje sposób na opróżnienie pamięci podręcznej przy użyciu jednej z Mage
klas lub metod?
Automatyzuję konfiguracje wersji, ładując Mage'a w kilku skryptach wersji. Na końcu skryptów muszę opróżnić pamięć podręczną Magento.
Czy istnieje sposób na opróżnienie pamięci podręcznej przy użyciu jednej z Mage
klas lub metod?
Odpowiedzi:
Wypróbuj następujący kod, aby programowo opróżnić pamięć podręczną
Mage::app()->cleanCache()
lub
Mage::app()->getCacheInstance()->flush();
Jeśli naprawdę tego chcesz, możesz wyczyścić tylko jeden lub więcej typów pamięci podręcznej. Tak właśnie robi to sekcja admin. PodMage_Adminhtml_CacheController::massRefreshAction
Możesz zobaczyć, że przechodzi przez wszystkie parametry types
i wywołuje następujące
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
Możliwe typy są następujące:
Można je zwrócić, dzwoniąc Mage::app()->getCacheInstance()->getTypes()
Szybki skrypt zewnętrzny, aby wyczyścić całą pamięć podręczną:
<?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();
}
Nasz moglibyśmy użyć n98-magerun . Zwłaszcza, że nigdy nie należy opróżniać pamięci podręcznej podczas wykonywania skryptów wdrażania. Zobacz także sys:setup:incremental
podkomendę, aby lepiej kontrolować wykonywanie skryptów instalacyjnych Magento.
Jeśli naprawdę musisz wyczyścić wszystkie magazyny pamięci podręcznej, użyj następującego kodu,
Mage::app()->getCacheInstance()->flush();
Tutaj funkcja Flush wywołuje domyślną funkcję pamięci podręcznej Magento. Jeśli potrzebujesz więcej wyjaśnień, sprawdź następujący adres URL.