最近一直在使用CakePHP,感觉挺不错。不过这几天在使用View Cache的时候却发现一个问题:URL带查询参数时总是不命中缓存。查看代码后发现问题所在,原来在View中使用CacheHelper类来处理缓存,每次保存缓存时采用的文件路径是:
$cache = convertSlash($this->here); //这里采用$this->here,$this->here是app/config/routes.php里配置的路径,不带查询参数的。
$cache = $cache . '.php';
return cache('views' . DS . $cache, $file, $timestamp); //$file和之后的参数不用管。
这段代码节选自CacheHelper中的cache函数
而在cake/bootstrap.php中,获取缓存文件路径的计算方法是:
$uri = setUri(); //这里采用的是setUri(),与上面计算缓存文件路径的方法是不一样的
$filename=CACHE . 'views' . DS . convertSlash($uri) . '.php';
这段代码节选自cake/bootstrap.php
为了让Cake支持带查询参数url的缓存,把CacheHelper中cache函数计算缓存文件路径的代码作如下修改:
$cache = convertSlash($this->here);
=>
$cache = str_replace("?","_",convertSlash(setUri()));
把cake/bootstrap.php计算缓存文件路径的代码作如下修改:
$filename=CACHE . 'views' . DS . convertSlash($uri) . '.php';
=>
$filename=CACHE . 'views' . DS . str_replace("?","_",convertSlash($uri)) . '.php';
View Cache其他设置方法不变,可以参考
http://www.cnblogs.com/confach/articles/577365.html
分享到:
相关推荐
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架
是cakephp框架的内容,用cakephp开发了一个的简单的CMS系统教程。
There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
2:cakephp中虽然对模型的操作方法中并没有提供像上面提到的连贯方法 但是cake框架提供了一个containable行为类来更好的完善模型关联中遇到的上述问题 ">1:thinkphp中通过框架提供的连贯操作Model >join ‘other ...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4
cakephp分页,cakephp框架的分页的方法的文档,是cakephp框架的内容。
CakePHP 一个开源PHP web 开发框架,PHPMVC结构框架,易与开发,是PHP技术人员的开发好的选择之一!
CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。 为...
Lead you from a basic setup of CakePHP to building a couple applications that will highlight CakePHPs functionality and capabilities without delving too deeply into the PHP language, but rather ...
cakephp中acl详解
下载了一个cakephp手册,里边有个单页手册,本来想打印出来慢慢看,发现单页手册不全,于是自己编辑了一个,供大家下载打印。为节省纸张,去掉了一些回车,修改了一些字号。大约120页。
cakephp-1.2 manual 英文版,离线版。
cakephp 框架书籍 英文版
CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。
CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的...