W Magento najczęściej wprowadzasz zmiany na produktach, kategoriach czy wpisach bloga. Zapomniałem o blokach statycznych, w nich również mogę pojawić się zmiany. Prawie za każdym razem gdy nanosimy zmiany w naszym sklepie Magento zastanawiamy się: dlaczego nie widać efektu tych zmian po stronie klienta? Tak, trzeba pamiętać by odświeżyć pamięć CACHE Magento, zanim zaczniemy analizować jak wygląda nasz sklep Magento po korektach. Wówczas w panelu Magento odwiedzamy stronę System > Zarządzanie Cache i odświeżamy. Jeśli zmiany nanosimy często, to odświeżanie pamięci Cache w Magento może okazać się dość uciążliwe i z pewnością wydłużą naszą pracę.

Automatyczne odświeżanie Cache w Magento

Na szczęście można z tą rutyną walczyć i jest na nią sposób. Poniższy skrypt można wykorzystać do automatycznego odświeżania całej pamięci Cache w Magento. class <namespace> <modulename>_Model_Observer { public function refreshcache() { try { $allTypes = Mage::app()->useCache(); foreach ($allTypes as $type => $blah) { Mage::app()->getCacheInstance()->cleanType($type); } } catch (Exception $e) { // do something error_log($e->getMessage()); } } } Gdyby z jakichś względów nie powinno się odświeżać całego Cache'a  w sklepie Magento, można posłużyć się skryptem usuwającym tylko nie aktualne elementy cache.: class <namespace> <modulename>_Model_Observer { public function refreshcache() { $invalidatedTypes = Mage::app()->getCacheInstance()->getInvalidatedTypes(); foreach ($invalidatedTypes as $type) { Mage::app()->getCacheInstance()->cleanType($type->getId()); Mage::log('Cache Type '.$type->getId()." Is Refresh.",null,'Refresh_Cache.log'); } } } Pozostaje tylko gdzieś wprowadzić jeden z przykładów do Magento. Sugeruję użyć do tego celu nowy moduł magento. W module tym użyj pliku: {{namespace}}/{{modulename}}/Model/Observer.php by umieścić w nim metodę refreshcache a następnie uruchom zadanie CRON dodając taki oto wpis w pliku etc/config.xml<config> ... <crontab><jobs><{{modulename}}_refresh_cache><schedule><cron_expr>* * * * *</cron_expr></schedule><run><model>{{modulename}}/observer::refreshcache</model></run></{{modulename}}_refresh_cache></jobs></crontab> ... </config> Jeśli wszystko poszło zgodnie z planem to nigdy już nie będzie trzeba pamiętać o odświeżaniu pamięci Cache w Magento.