phpcms缓存使用总结(memcached、eaccelerator、 shm) Use summaryof phpcms (memcached, eaccelerator, SHM cache) A template compilation cache
Reference files include/globalfuncphp andinclude/templatefuncphp
The principle of template cache is simple if the template isfirst compiled directly compile it, if not the first is tocompile the template file ($tplfile) and template cache file($compiledtplfile) modify time if the template cache filemodification time is greater than the compiled template fileis compiled template or not compile the template to improve theprogram' s execution efficiency
Copy code
Code is as follows:
Function template ($module = phpcms $template = index){
G lobal $CONFI G;
$compiledtplf ile =
$CONFIG[templatescachedir]$module_$templatetplphp;
If ($CONFIG[templaterefresh] )
{
$tplfile =
PHPCMS_ROOT/t emp lat es/$CONFIG[defaul ttempl ate]/$module/$t emplatehtml;
If (! File_exists ($compiledtplfile) | | @f ilemtime ($tplfile) >@filemtime ($compiledtplf ile))
{
Require_once PHPCMS_ROOT/inc lude/templatefuncphp;
Template_refresh ($tplfile $compiledtplfile) ;
}
}
Return $compiledtplfile;
}
B generates static cache files in a dynamic page
Similar to the caching principle of C, the name of the filegenerated here is relatively fixed
Take the question bar module as an example
Access
This directory contains indexphp files in the current directoryto determine whether there is a file called index_cachehtml if
there is no failure period directly to include this file orPrivate Const SMART_Iwww.qushu6.comNVALID_BUFFER As dynamicLong =4 "Bad buffer (null invalid addr. . ) read after the datasaved as index_cachehtml file for the next use.
Content in file indexphp
Copy code
Code is as follows:
"PHP?
Require_once /include/commonincphp;
$lastedittime = @filemtime (index_cachehtml) ;
$lastedittime = $PHP_TIME$lastedittime;
$autoupdatetime = intval ($MOD[autoupdate] ) ;
//$MOD[autoupdate] comes from cache filedata/cache/wenba_settingphp
If (file_exists (index_cachehtml) & &
$lastedittime<$autoupdatetime)
{
Echo "include cache file"";
Include index_cachehtml;
}
Else
{
Echo "read dynamic page"";
>?
How to judge whether the file is invalid, the filedata/cache/wenba_settingphp has the following settings, wherethe value of the field AutoUpdate is the file failure time unitis seconds, in the background can be set
The file wenba_settingphp is going to come from it are installedautomatically when the various modules of the data saved to thedatabase installation generated when the cache data in theinclude/commonincphp cache_all function can also generatebackground cache settings when cache will be automaticallyupdated
Copy code
Code is as follows:
"PHP?
Return array
Higth_score = >
Anybody_score = >
Answer_give_credit = >
Vote_give_credit = >
Highscore = >
Vote_give_actor</p> <p> </p>=>white-collar workers <p> </p><p> won the imperial wizard generals </p> <p> vagabondAutoUpdate = >
Name = > a s k.
Moduledir = > Wenba
Moduledomain = >
Linkurl = > /opensource/phpcms_sp_gbk/phpcms/wenba/
) ;
>?
Include/globalfuncphp
Update module setup function
Copy code
Code is as follows:if ($is _ js) $happy = a _ js ($content) ;if ($phpcache config [] = =& & $cachefiledir&& amp; $cachefile)
{
_ ($cachefiledir dir. ) ;give _ _ contents ($cachefile was $content) ; / /在这儿生成一个html格式的文件当下次以同样的url访问时会直接读取缓存了参见include /commonincphp中的代码这儿的代码是非常非常精典的大家好好借鉴好好模仿吧the chmod ($cachefile) .
}
/ *
向浏览器发送http header跟浏览器说此页面不缓存还告诉浏览器页面的最后修改时间
第一次访问jsphp? id =时向浏览器发送http header第二次或以
后再访问此url时由于上次已经生成了缓存所以在include /commonincphp中直接调用缓存文件了直到缓存失效后再次执行此处的动态代码此处发送的header控制缓存是相对于浏览器来说的而通过file was _ contents生成的缓存是相对于电脑硬盘来说的是不一样的_.
* /header (expires: thu jul: gmt) .header (lastmodified: gmdate (d m y h: i: s) gmt) .header (cachecontrol: nocache mustrevalidate) .header (pragma: nocache) .echo $contents.
}
$$$$$$$上面的phpcache函数中的全局变量cachef iledircachefile是从哪里来的呢从这儿来的
文件include / commonincphp中的内容
复制代码
代码如下.if ( ! defined in _ admin)
{if ($$[dbiscache config) _ file = _ db cache.if ($phpcache config [] = =)
{
$$$$$$$cachef ileid = r (p _ self? php_ $querystring.phpcms _ cachefi ledir = $root / data / phpcache / substr($cachefileid) .
$$$$$$$$cachefiledir cachefile cachefileidhtml.
/ / / / / / / / (cachefile: $cachefile ";if f ile exists ($cachefile _) & amp; & amp; (p _ time < @filemtime ($cachefile) + $phpcacheexpires config [] )
{this cachefile $;exit.
}
}if (p _ querystring & amp; & amp; preg match (_ ^ (*) (htm |
html | shtm | shtml) $$$"or _ querystring urlvar)
{
_str, str_and par se (array (/) array (& = $url var [] ) .}
}d数据库查询结果缓存
下面是include / commonincphp中的几行代码
复制代码
代码如下.
- $db _ _ class = db = $db (database) $_ conf ig config; / /[database]位于conf i gincphp中配置可以使用自己的数据库如mysqlsqlitesqlserver等.this _ phpcms root / include / $db _ fileclassphp.
$$$$$$$db db = new _ class.
$$$$$$$"> connect db config config dbhost] [] [] dbuser dbpwconf ig config config [dbname] $[pconnect]) .
$$$$$$$"> iscache = db config dbiscache] ; / /是否启用sqlcache (只对前台起作用建议在不生成html并且访问量过大时开启)
BGPTO是一家成立于2017年的国人主机商,从商家背景上是国内的K总和有其他投资者共同创办的商家,主营是独立服务器业务。数据中心包括美国洛杉矶Cera、新加坡、日本大阪和香港数据中心的服务器。商家对所销售服务器产品拥有自主硬件和IP资源,支持Linux和Windows。这个月,有看到商家BGPTO日本和新加坡机房独服正进行优惠促销,折扣最低65折。第一、商家机房优惠券码这次商家的活动机房是新加坡...
LOCVPS在农历新年之后新上架了日本大阪机房软银线路VPS主机,基于KVM架构,配备原生IP,适用全场8折优惠码,最低2GB内存套餐优惠后每月仅76元起。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐选择KVM),线路方面均选择国内直连或优化方案,访问延迟低,适合建站或远程办公使用。...
LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。新用户注册充值就送,最高可获得20美元的奖励金!成为LightNode的注册用户后,还可以获得属于自己的邀请链接。通过你的邀请链接带来的注册用户,你将直接获得该用户的消费的10%返佣,永久有效!平台目前...