Tôi đang tự động hóa cấu hình phát hành bằng cách khởi động Mage trong một số tập lệnh phát hành. Khi kết thúc tập lệnh, tôi cần xóa bộ nhớ cache của Magento.
Có cách nào để xóa bộ đệm bằng một trong các Mage
lớp hoặc phương thức không?
Tôi đang tự động hóa cấu hình phát hành bằng cách khởi động Mage trong một số tập lệnh phát hành. Khi kết thúc tập lệnh, tôi cần xóa bộ nhớ cache của Magento.
Có cách nào để xóa bộ đệm bằng một trong các Mage
lớp hoặc phương thức không?
Câu trả lời:
Vui lòng thử đoạn mã sau để xóa bộ nhớ cache theo chương trình
Mage::app()->cleanCache()
hoặc là
Mage::app()->getCacheInstance()->flush();
Nếu bạn thực sự muốn, bạn cũng có thể xóa chỉ một hoặc nhiều loại bộ đệm. Đây thực sự là cách phần quản trị làm điều đó. DướiMage_Adminhtml_CacheController::massRefreshAction
Bạn có thể thấy rằng nó lặp qua tất cả các tham số types
và gọi như sau
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
Các loại có thể như sau:
Và những thứ này có thể được trả lại bằng cách gọi Mage::app()->getCacheInstance()->getTypes()
Một tập lệnh bên ngoài nhanh để xóa tất cả bộ đệm:
<?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();
}
Chúng tôi có thể sử dụng n98-magerun . Đặc biệt là vì bạn không bao giờ nên xóa bộ đệm trong khi thực thi các tập lệnh triển khai. Ngoài ra, hãy nhìn vào sys:setup:incremental
tiểu ban để thực thi các kịch bản thiết lập Magento được kiểm soát nhiều hơn.
Nếu bạn thực sự cần phải xóa tất cả các kho lưu trữ bộ đệm có nghĩa là sử dụng mã sau đây,
Mage::app()->getCacheInstance()->flush();
Ở đây chức năng Flush gọi chức năng bộ đệm magento mặc định, Nếu bạn cần làm rõ hơn có nghĩa là tham khảo url sau.