phpcms缓存使用总结(memcached、 eaccelerator、 shm)A template compilation cache
Reference documents 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
The code reads 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) | | @filemtime
($tplfile) > @filemtime ($compiledtplfile) )
{
Require_once PHPCMS_ROOT/inc lude/templatefuncphp;
Template_refresh ($tplfile, $compiledtplfile) ;
}
}
Return $compiledtplfile;
}
B generates static cache files within a dynamic page
Similar to the caching principle of C, the name of the filegenerated here is relatively fixed
Take the question module as an example
For access
This directory contains indexphp files in the current directory
to 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.
What is in the file indexphp?
Copy code
The code reads as follows:
"PHP?
Require_once /include/commonincphp;
$lastedittime = @filemtime (index_cachehtml) ;
$lastedittime = $PHP_TIME$lastedittime;
$autoupdatetime = intval ($MOD[autoupdate] ) ;
//$MOD[autoupdate] comes from the contents of the 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 determine whether the file is invalid, filedata/cache/wenba_settingphp has the following settings, inwhichthe value of the fieldAutoUpdate is the file failure time,unit is 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
The code reads 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 settings function
Copy code
The code reads as follows:
Function module_setting ($module $setting)
{
G l ob al $db$MODULE$LANG;
If ( ! Is_array ($setting) | | ! Array_key_exists
($modul e$MODULE) ) return FALSE;
If (isset ($setting[moduledomainPrivate, Const,
MAX_IDE_DR IVESwww.mnmm8.c omAs, Long=, Max, number, of, driv es,assuming, primary/secondary, master/slave, topology])){
$moduledomain = $setting[moduledomain] ;
$db>que ry ("UPDATE", "TAB LE_MOD ULE", "S ET,moduledomain=$modul edomai n, WHERE, module=$modul e") ;
Unset ($setting[moduledomain]) ;
}
$setting = addslashes (serialize (new_stripslashes
($setting) )) ;
Will / more than one set of values for a module. After arrayserialization is stored in a field in setting
$db>que ry ("UPDATE", "TABLE_MODULE", "S ET, s et t i n g=$s et t i n g,WHERE, modul e=$modu l e") ;
Cache_module ($module) ;
Cache_common () ;
Return TRUE;
}
C generates static cache files within a dynamic page
With the principle of B is similar to the cache file name isgenerated according to the calculated $PHP_SELF and
$PHP_QUERYSTRING value of MD generated file name relative toall PHP dynamic pages are the same thought classic comparisonshould be signed by
Take the question module as an example
The file call order is indexphp> jsphp >adphp> globalfuncphpFor access
This directory contains indexphp files in the current directoryto determine whether there is a file called index_cachehtml
directly if this file is included if it doesnot exist this fileare dynamically read after the data stored in theindex_cachehtml file for the next use.
When accessing the above URL, the page contains the followingline of JS code
<script language=, "JavaScript",
"/opensource/phpcms_sp_gbk/phpcms/data/jsphp", "id=",src=, ></script>
This JS code is actually a dynamic call to the content of thePHP page
The contents of the jsphp file:
Copy code
The code reads as follows:
"PHP?
Chdir (/ads/) ;
Require /adphp;
>?
Adphp content
Copy code
The code reads as follows:
"PHP?
D ef i ne (SHOWJS) ;
Require /include/commonincphp;
Require MOD_ROOT/include/globalfuncphp; </p> <p>$placeid =i ntval ($i d) ; </p> <p>$qu ery = "SELECT * FROM" TABLE_ADS "ASa LEFT"JOIN"TABLE_ADS_PLACE AS P ON(aplaceid=pplaceid) WHEREaplacei d=" $p laceid "AND afromdate<=UNIX_TIMESTAMP (AND)atodate>=UNIX_TIMESTAMP (AND) ppassed= AND apassed= ANDachecked= ORDER BY aaddtime";
$ads = $db>ge t_one ($query "CAHCE") ;
I f ( ($ads) ex it (documentwri te (")") ; </p>, <p>$db>query("UPDATE", "SET, views=views+, WHERE, adsid=", $ads[ads id] ) ;</p> <p>$content = ads_content ($ads) (TABLE_ADS) ;
$templateid = $ads[templateid]? $ads[templateid] : ads;Include template (ads $templateid) ;
Phpcache () ;
>?
Adphp which calls the phpcache function reference file
41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...
亚洲云Asiayun怎么样?亚洲云Asiayun好不好?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括B...
HostKvm是一家成立于2013年的国外VPS服务商,产品基于KVM架构,数据中心包括日本、新加坡、韩国、美国、俄罗斯、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月,商家旗下俄罗斯、新加坡、美国、香港等节点带宽进行了大幅度升级,俄罗斯机房国内电信/联通直连,CN2线路,150Mbps(原来30Mbps)带宽起,目前俄罗斯和香港高防节点5折骨折码继续优惠中...