Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
Magento给常用的Block添加缓存
Magento给常用的Block添加缓存
07-16
Mark
1009
###1、产品页面### 修改文件:app\code\local\Mage\Catalog\Block\Product\View.php 在_prepareLayout方法前面添加方法: ```php protected function _construct() { $this->addData(array( 'cache_lifetime' => 86400, 'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG . "_" . $this->getProduct()->getId()), 'cache_key' => $this->getProduct()->getId(), )); } ``` 这里使用catalog_product_productid使用cache_tags ###2、分类页面### 修改文件:app\code\local\Mage\Catalog\Block\Category\View.php 在_prepareLayout方法前面添加方法: ```php protected function _construct() { $this->addData(array( 'cache_lifetime' => 86400, 'cache_tags' => array($this->getCacheKeyInfo()), 'cache_key' => $this->getCacheKeyInfo(), )); } public function getCacheKeyInfo(){ $paging = ''; $limit = ''; $mode = ''; $order = ''; $productListBlock = $this->getChild('product_list'); if($productListBlock){ $toolbarBlock = $productListBlock->getChild('product_list_toolbar'); if($toolbarBlock){ $paging = $toolbarBlock->getCurrentPage(); $limit = $toolbarBlock->getLimit(); $mode = $toolbarBlock->getCurrentMode(); $order = $toolbarBlock->getCurrentOrder(); } } return array( 'CATEGORY_VIEW', Mage::app()->getStore()->getId(), Mage::getDesign()->getPackageName(), Mage::getDesign()->getTheme('template'), $this->getCurrentCategory()->getId(), 'template' => $this->getTemplate(), $paging, $limit, $mode, $order ); } ``` ###3、cms/page页面### 修改文件:app\code\local\Mage\Cms\Block\Page.php。在_prepareLayout方法前面添加方法: ```php const CACHE_KEY = 'cms_page'; protected function _construct() { $this->addData(array( 'cache_lifetime' => 86400, 'cache_tags' => array('cms-'.$this->getPage()->getIdentifier()), 'cache_key' => $this->getCacheKey(), )); } public function getCacheKey() { $storeId = $this->getStoreId(); $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); $uri = $this->getRequest()->getRequestUri() . self::CACHE_KEY; return $storeId.$uri.$currencyCode; } ``` 这里使用cms-pageidentifier作为cache_tags ###4、cms/block页面### 貌似magento默认给每个block都添加了缓存,如果不想使用缓存,可以用 ```php <?php echo $this->getChildHtml('topLinks',false)?> ``` 设置为false则就不会使用缓存了
最新文章
Golang内存问题处理
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
最热文章
Magento实现下载csv数据表格
1806
Laravel带有条件搜索的分页
1708
Magento上传文件、缩略图和导出CSV
1699
Magento添加Advanced Dataflow
1651
Golang开发微信公众号
1583
Magento后台添加rule规则
1552
Magento优化 – MySQL读写分离
1517
Magento常用模块分享
1414
热门标签
下载
laravel分页
上传
导出
Dataflow
微信公众号
rule
规则
读写分离
模块
shell
正则
Collection
binlog
命名空间
内存泄漏
处理
Git
string
解锁
锁表
composer
事务处理
函数
redis sentinel
架构
系统
time
package
读写
事务处理
缓存
日志分析
进阶
golang
表分割
schedule
fmt
事务
分布式锁
交叉编译
HTTPS
日志分割
Gopher面试
Dockerfile
mongodb
channel
多数据库
git服务器
gogs
重载配置
负载均衡
日志过滤
php
protobuf
发展方向
版本号
模型关系
concat
goroutine
json
mongodb
get
post
defer
panic
golang算法
docker
elasticsearch
算法
rpc
代码部署
redis
写文件
主从配置
protobuf
websocket
laravel
package
并发
量级
curl
生成插件
直接下载
数据类型
错误传递
Shell
grpc
成长
Go指针
参数
方法
队列
protobuf
Redis持久化
路上
风景
yum