好!欢迎访问迷津渡口 现在时间是: 天气 °C ~ °C

迷津渡口

越感到迷惑 越接近真理

emlog MVC解构7--工具类们之Cache

emlog拥有各种各样的工具类,保存在include/lib/里。

下面首先来分析非常重要的Cache文本缓存类。

属性表:

属性注释
private $db一个数据库类实例,一个MySql或者MySqlii类实例,两种类属性和方法一致
private static $instance = null静态属性,一个Cache类的实例
private $options_cache站点配置缓存,emlog_options表的数组形式
private $user_cache用户信息缓存,emlog_user表的数组形式
private $sta_cache

站点统计缓存,包含全站和每个用户的日志、评论、微语信息:

array(

'lognum' => emlog_blog表已提交的日志总数量,

'draftnum' => emlog_blog表草稿的数量,

        'checknum' => emlog_blog表未审核的日志数量,

'comnum' => emlog_comment表已审核发表的评论数量,

        'hidecomnum' => emlog_comment表未审核的评论数量,

'comnum_all' => emlog_comment表已提交的评论总数量,

'twnum' => emlog_twitter表已发表的微语总数量,

        // 每个用户的日志、评论和微语信息,下面仅列出一个模板

        '$userid' => array (

'lognum' => 此用户已提交的日志总数量,

'draftnum' => 此用户草稿的数量,

'commentnum' => 此用户被审核通过评论数量,

'hidecommentnum' => 此用户未被审核通过的评论数量,

'twnum' => 此用户发表的微语数量

        ),

);


private $comment_cache

最新评论缓存数组,一般是10条评论,每条评论包含:

array(

'cid' => 评论唯一ID,

'gid' => 评论所属日志ID,

'name' => 评论提交者名称,

'date' => 评论提交时间戳,

'page' => 评论在第几页,

'mail' => 评论提交者的邮箱,

'content' => 评论内容,

);


private $tags_cache

侧边栏标签缓存数组,每个标签数组包含:

array(

'tagurl' => 标签的地址,仅包含标签部分,如http://www.qingzz.cn/tag/emlog是emlog的访问地址则这里的值为emlog,

'tagname' => 标签的名字,

'fontsize' => 标签的字体大小,

'usenum' => 标签被使用的次数

);


private $sort_cache侧边栏分类缓存数组,emlog_sort表的数组形式
private $link_cache友情链接缓存数组,emlog_link表的数组形式
private $navi_cache导航缓存数组,emlog_navi表的数组形式
private $newlog_cache最新文章缓存数组,一般是10篇文章
private $newtw_cache最新微语缓存数组,一般是10条微语
private $record_cache
文章归档缓存数组,根据月和日为分组方式归档文章
private $logtags_cache文章标签缓存数组,每篇文章标签构成二级数组
private $logsort_cache文章分类缓存数组,每篇文章分类构成二级数组
private $logalias_cache文章别名缓存数组

方法表:

方法注释
private function __construct()构造方法,配置$this->db实例化数据库连接
public static function getInstance()静态方法,配置$this->instance为数据库连接实例并返回
function updateCache($cacheMethodName=null)

用以调用内部类似mc_xxx()更新缓存,参数$cacheMethodName默认为null,此时函数将调用所有Cache类的mc_xxx方法,更新所有缓存;更新单个缓存时,$cacheMethodName配置为需要更新缓存的属性字符串,如'options',则函数将单独调用mc_options();更新多个缓存时,$cacheMethodName配置为多个需要更新缓存的属性字符串组成的数组,如array('options','user'),则函数将按顺序调用mc_options()和mc_user()。

注意:

更新缓存的方法以mc_开头,后面跟更新的属性名称

private function mc_options()站点配置缓存更新,将emlog_options表简单处理并serialize后的字符串缓存,调用writeCache写入options.php文件,失败则仍以数组形式保留在$options_cache属性里
private function mc_user()用户信息缓存更新,emlog_user表简单处理并serialize后的字符串缓存,调用writeCache写入user.php文件,失败则仍以数组形式保留在$user_cache属性里
private function mc_sta()

站点统计缓存更新,通过统计查询获取的站点统计信息处理并serialize后的字符串缓存,调用writeCache写入sta.php文件,失败则仍以数组形式保留在$sta_cache属性里


private function mc_comment()最新评论缓存更新,根据Options配置的个数获取侧边栏输出的最新评论的信息处理并serialize后的字符串缓存,调用writeCache写入comment.php文件,失败则仍以数组形式保留在$comment_cache属性里
private function mc_tags()侧边栏标签缓存更新,处理后serialize后的字符串缓存,调用writeCache写入tags.php文件,失败则仍以数组形式保留在$tags_cache属性里
private function mc_sort()侧边栏分类缓存更新,emlog_sort表简单处理并serialize后的字符串缓存,调用writeCache写入sort.php文件,失败则仍以数组形式保留在$sort_cache属性里
private function mc_link()友情链接缓存更新,emlog_link表简单处理并serialize后的字符串缓存,调用writeCache写入link.php文件,失败则仍以数组形式保留在$link_cache属性里
private function mc_navi()导航缓存更新,emlog_navi表简单处理并serialize后的字符串缓存,调用writeCache写入navi.php文件,失败则仍以数组形式保留在$navi_cache属性里
private function mc_newlog()最新文章缓存更新,根据Options配置的个数获取侧边栏输出的最新文章的信息处理并serialize后的字符串缓存,调用writeCache写入newlog.php文件,失败则仍以数组形式保留在$newlog_cache属性里
private function mc_newtw()最新微语缓存更新,根据Options配置的个数获取侧边栏输出的最新文章的信息处理并serialize后的字符串缓存,调用writeCache写入newtw.php文件,失败则仍以数组形式保留在$newtw_cache属性里
private function mc_record()文章归档缓存更新,根据月和日为分组方式归档文章,处理信息并serialize后的字符串缓存,调用writeCache写入record.php文件,失败则仍以数组形式保留在$record_cache属性里
private function mc_logtags()

文章标签缓存更新,每篇文章标签构成二级数组,处理信息并serialize后的字符串缓存,调用writeCache写入logtags.php文件,失败则仍以数组形式保留在$logtags_cache属性里

private function mc_logsort()文章分类缓存更新,每篇文章分类构成二级数组,处理信息并serialize后的字符串缓存,调用writeCache写入logsort.php文件,失败则仍以数组形式保留在$logsort_cache属性里
private function mc_logalias()文章别名缓存更新,处理信息并serialize后的字符串缓存,调用writeCache写入logalias.php文件,失败则仍以数组形式保留在$logalias_cache属性里
function cacheWrite($cacheData,$cacheName)

写入缓存,$cacheData是更新缓存的函数将数组serialize之后的结果,$cacheName是缓存属性的名称。

一般情况下,数据将保存在EMLOG_ROOT.'/content/cache/'.$cacheName.'.php'文件里面,php文件保存是因为添加必要的代码后可以保证用户无法通过访问地址获取缓存数据,数据为"<?php exit;//".$cacheData,访问此文件时将直接退出,不会访问后面的数据。另外写入后实例属性保存的数据将被清空,需要用readCache()重新将数据从文件获取到属性。

特殊情况下,就是文件无法打开写入的情况下,缓存将仍以字符串的形式保留在缓存实例的属性里。

function readCache($cacheName)读取缓存文件,$cacheName是缓存属性的名称,如果实例相应的属性里面已经有数据,则直接返回属性保存的数据。如果缓存不存在则自动生成缓存后再把数据写入属性里,经过去除前缀和unserialize的处理后返回属性保存的数据。


点赞0
 标签: emlog mvc cache
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
tatilblogu
 tatilblogu 约 16 小时前回复
#203
<a href="http://www.mandydugan.com/herre-air-max-lunar-90-lilla-gr%C3%A5-skol">herre air max lunar 90 lilla gr氓</a> <a href="http://www.dxnkofe.com/nike-free-run-3-femminile-verde-cielo-blu-scarpeh">nike free run 3 femminile verde cielo blu</a> <a href="http://www.yurasmirnov.com/maschio-nike-cortez-gituttio-rosa-scarpei">maschio nike cortez gituttio rosa</a> <a href="http://www.blovese.com/adidas-neo-lazy-silber-orangen-schuheh">adidas neo lazy silber orangen</a> <a href="http://www.ztsurfboards.com/air-jordan-retro-4-womens-gold-yellow-shoesl">air jordan retro 4 womens gold yellow</a> <a href="http://www.visheshcap.com/vintage-phoenix-coyotes-jersey-black-1999-2003-nfli">vintage phoenix coyotes jersey black 1999 2003</a>
tatilblogu http://www.tatilblogu.com/
mumbaikichut
 mumbaikichut 约 16 小时前回复
#202
<a href="http://www.findatrans.com/femminile-nike-air-presto-viola-rosa-scarpej">femminile nike air presto viola rosa</a> <a href="http://www.isabellerigal.com/womens-nike-kyrie-2-grey-sky-blue-shoesh">womens nike kyrie 2 grey sky blue</a> <a href="http://www.esnafkocaeli.com/nike-huarache-utility-hombresta-verde-zapatosk">nike huarache utility hombresta verde</a> <a href="http://www.dkdjabar.com/nike-air-max-tn-p%C3%BArpura-negro-zapatosp">nike air max tn p煤rpura negro</a> <a href="http://www.jamiecirillo.com/north-face-summit-gore-tex-northfaceh">north face summit gore tex</a> <a href="http://www.xpostshopx.com/air-jordan-retro-14-lila-blau-schuhej">air jordan retro 14 lila blau</a>
mumbaikichut http://www.mumbaikichut.com/
isimsizsevda
 isimsizsevda 2019-04-24 22:19回复
#201
<a href="http://www.dowsadvocate.com/adidas-samba-bold-bl%C3%A5-skoi">adidas samba bold bl氓</a> <a href="http://www.laflammesinc.com/nike-hypervenom-blanc-chaussuresh">nike hypervenom blanc</a> <a href="http://www.thisisitnyc.com/notre-dame-beanie-hatl">notre dame beanie</a> <a href="http://www.tuurulz.com/nike-le-sableals-vert-chaussuresh">nike le sableals vert</a> <a href="http://www.todotecnicos.com/nike-air-max-90-mujeres-oro-negro-zapatosk">nike air max 90 mujeres oro negro</a> <a href="http://www.xaviersarrate.com/adidas-stan-smith-vintage-blue-shoesj">adidas stan smith vintage blue</a>
[url=http://www.isimsizsevda.com/]isimsizsevda[/url]
annabelpatton
 annabelpatton 2019-04-24 14:45回复
#200
<a href="http://www.fleetboilers.com/herre-asics-gel-sendai-2-s%C3%B8lv-orange-butyb">herre asics gel sendai 2 s酶lv orange</a> <a href="http://www.jettstreaminc.com/adidas-roshe-run-svart-kurpesd">adidas roshe run svart</a> <a href="http://www.maverickviral.com/kobe-11-high-rosso-kaufen-kurpesc">kobe 11 high rosso kaufen</a> <a href="http://www.iubhlis.com/adidas-pr%C3%B8dator-lz-ii-hvid-orange-sort-scarpec">adidas pr酶dator lz ii hvid orange sort</a> <a href="http://www.djterryhunter.com/nike-free-run-5.0-bl%C3%A5-and-gr%C3%B8nn-kit-schuhee">nike free run 5.0 bl氓 and gr酶nn kit</a> <a href="http://www.msdarby.com/nike-free-3.0-v4-bleu-gray-femmes-fonctionnement-chaussures-vente-obuvf">nike free 3.0 v4 bleu gray femmes fonctionnement chaussures vente</a>
annabelpatton http://www.annabelpatton.com/
hiyawigs
 hiyawigs 2019-04-24 07:47回复
#199
<a href="http://www.taiwanmeinet.com/black-white-low-top-converse-shoesj">black white low top converse</a> <a href="http://www.talkwithgirl.com/nike-dri-fit-fitted-hat-hath">nike dri fit fitted hat</a> <a href="http://www.mamatale.com/hombres-adidas-springblade-drive-2.0-negro-verde-2-zapatosl">hombres adidas springblade drive 2.0 negro verde 2</a> <a href="http://www.strongtale.com/adidas-ace-16.1-black-and-red-shoesk">adidas ace 16.1 black and red</a> <a href="http://www.iranpayamco.com/nike-hyperdunk-2015-mid-hvit-r%C3%B8d-gul-obuvi">nike hyperdunk 2015 mid hvit r酶d gul</a> <a href="http://www.hapeid.com/nike-lebron-12-kvinners-rosa-gr%C3%A5-obuvk">nike lebron 12 kvinners rosa gr氓</a>
hiyawigs http://www.hiyawigs.com/
procrastivity
 procrastivity 2019-04-23 17:37回复
#198
<a href="http://www.poradanomada.com/m%C3%A4nner-nike-kobe-9-mid-grau-gelb-blau-gr%C3%BCn-schuhej">m盲nner nike kobe 9 mid grau gelb blau gr眉n</a> <a href="http://www.njdevsblog.com/oakley-bobble-hat-hath">oakley bobble hat</a> <a href="http://www.theuonline.com/nike-air-max-90-premium-noir-vert-chaussuresh">nike air max 90 premium noir vert</a> <a href="http://www.myflexijob.com/new-frau-nike-shox-deliver-rot-schwarz-schuhe-schuheh">new frau nike shox deliver rot schwarz schuhe</a> <a href="http://www.myglobalsms.com/nike-air-max-95-jacquard-black-grey-green-shoesk">nike air max 95 jacquard black grey green</a> <a href="http://www.playunreal.com/adidas-superstar-pale-lyser%C3%B8d-skoj">adidas superstar pale lyser酶d</a>
procrastivity http://www.procrastivity.com/
sheeradiance
 sheeradiance 2019-04-23 06:35回复
#197
<a href="http://www.alterwina.com/adidas-zx-750-m%C3%A6nd-dark-bl%C3%A5-hvid-skok">adidas zx 750 m忙nd dark bl氓 hvid</a> <a href="http://www.fajarmuda.com/nike-air-max-95-marinen-bl%C3%A5-and-hvit-obuvi">nike air max 95 marinen bl氓 and hvit</a> <a href="http://www.nohvfx.com/nike-dunk-low-negro-gum-zapatosl">nike dunk low negro gum</a> <a href="http://www.prepperdays.com/ray-ban-clubmaster-online-sunglassesh">ray ban clubmaster online</a> <a href="http://www.xlectures.com/minnesota-vikings-knit-hat-hatj">minnesota vikings knit hat</a> <a href="http://www.masvidalyoga.com/adidas-superstar-bianca-prezzo-scarpej">adidas superstar bianca prezzo</a>
sheeradiance http://www.sheeradiance.com/
girisweb
 girisweb 2019-04-23 05:52回复
#196
<a href="http://www.colintilley.com/nike-zoom-structure-19-femminile-nero-argento-scarpel">nike zoom structure 19 femminile nero argento</a> <a href="http://www.xthbgc.com/mens-air-yeezy-ii-2-sp-max-90-green-blue-shoesj">mens air yeezy ii 2 sp max 90 green blue</a> <a href="http://www.iberishop.com/kvinders-nike-kyrie-1-guld-gr%C3%B8n-skoi">kvinders nike kyrie 1 guld gr酶n</a> <a href="http://www.karmacanix.com/air-jordan-future-royal-blu-grigio-scarpeq">air jordan future royal blu grigio</a> <a href="http://www.tobepartridge.com/adidas-nmd-runner-yellow-purple-shoesj">adidas nmd runner yellow purple</a> <a href="http://www.shopdunks.com/michael-kors-bedford-womens-crossbody-bag-purse-leather-mkh">michael kors bedford womens crossbody bag purse leather</a>
girisweb http://www.girisweb.com/
ispardmore
 ispardmore 2019-04-22 21:03回复
#195
<a href="http://www.wuxiangtaichi.com/air-jordan-retro-3-womens-yellow-gold-shoesi">air jordan retro 3 womens yellow gold</a> <a href="http://www.culdesacmag.com/nike-kobe-11-s%C3%B8lv-lilla-skoj">nike kobe 11 s酶lv lilla</a> <a href="http://www.livinggreedy.com/adidas-zx-700-himmelen-bl%C3%A5-gr%C3%B8nn-obuvi">adidas zx 700 himmelen bl氓 gr酶nn</a> <a href="http://www.clickstroy.com/nike-sb-stefan-janoski-max-oransje-svart-obuvp">nike sb stefan janoski max oransje svart</a> <a href="http://www.zotorrent.com/nike-air-max-thea-kvinners-gr%C3%B8nn-s%C3%B8lv-obuvi">nike air max thea kvinners gr酶nn s酶lv</a> <a href="http://www.viptarimas.com/nike-foamposite-plata-azul-zapatosp">nike foamposite plata azul</a>
ispardmore http://www.ispardmore.com/
lyricensemble
 lyricensemble 2019-04-22 05:03回复
#194
<a href="http://www.yozushi.net/nike-zoom-kobe-7-schwarz-and-wei%C3%9F-kurpese">nike zoom kobe 7 schwarz and wei脽</a> <a href="http://www.zionstrumpet.net/nike-air-max-90-gull-brun-kurpesa">nike air max 90 gull brun</a>
lyricensemble http://www.lyricensemble.net/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸