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并且访问量过大时开启)
CloudCone是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,譬如常规VPS、大硬盘VPS等等,数据中心在洛杉矶MC机房。商家2021年Flash Sale活动继续,最低每月1.99美元,支持7天退款到账户,支持使用PayPal或者支付宝付款,先充值后下单的方式。下面列出几款VPS主机配置信息。CPU:1core内存:768MB...
spinservers美国圣何塞机房的独立服务器补货120台,默认接入10Gbps带宽,给你超高配置,这价格目前来看好像真的是无敌手,而且可以做到下单后30分钟内交货,都是预先部署好了的。每一台机器用户都可以在后台自行安装、重装、重启、关机操作,无需人工参与! 官方网站:https://www.spinservers.com 比特币、信用卡、PayPal、支付宝、webmoney、Payssi...
御云怎么样?炎炎暑期即将来临,御云(royalyun)香港、美国服务器开启大特惠模式。御云是新成立的云服务提供商,主要提供香港、美国的云服务器,不久将开启虚拟主机业务。我们的香港和美国主机采用CN2 GIA线路。目前,香港cn2 gia vps仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠,香港云服务器国内延迟一般在50ms左右,是搭建网站的最佳选择,但是请不要用于违法用途。点击进...