Magento中为Block启用Cache_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > Magento中为Block启用Cache

Magento中为Block启用Cache

 2010/9/19 23:34:15  cgzhang  http://cgzhang.javaeye.com  我要评论(0)
  • 摘要:在Block类的_construct(不是构造方法)方法中加入以下代码:publicfunction_construct(){$this->addData(array('cache_lifetime'=>3600,'cache_tags'=>array(Mage_Catalog_Model_Product::CACHE_TAG),'cache_key'=>'productfaq_'.Mage::registry('product')->getId().'_'
  • 标签:Magento 为Block启用Cache
在Block类的_construct(不是构造方法)方法中加入以下代码:
public function _construct()
		{
		$this->addData(
			array(
				'cache_lifetime'    => 3600,
				'cache_tags'        => array(Mage_Catalog_Model_Product::CACHE_TAG),
				'cache_key'         =>  'productfaq_'.Mage::registry('product')->getId().'_'.Mage::app()->getStore()->getId()
				. '_' . Mage::getDesign()->getPackageName()
				. '_' . Mage::getDesign()->getTheme('template')
				. '_' . Mage::getSingleton('customer/session')->getCustomerGroupId()
			)
		);
		
		parent::_construct();
		}

cache_key必须唯一。
在获得数据的方法中加入:
$faq_data = @unserialize( Mage::app()->loadCache($this->getCacheKey()) );
//从数据库取出数据并存入到faq_data 中
	if (!$faq_data) {
			
			$faq_data = array();
                        ...
                        $faq_data[]=array('customer_id' => $customerId,
					'name' => $sName,
					'avatar' => $sAvatar,
					'question' => $sQuestion,
					'answer' => $sAnswer,
				);
	
       }
Mage::app()->saveCache(serialize($faq_data), $this->getCacheKey(), $this->getCacheTags(),$this->getCacheLifetime());
发表评论
用户名: 匿名