亚洲今日精彩视频_精品一级黄色_免费一级A片在现观看视频_8050福利视频 - 一级免费黄色片

首頁 新聞資訊 技術文章
【UCHome二次開發(fā)】緩存機制解析

UCHome中的常用數(shù)據(jù)皆通過調用緩存來實現(xiàn)讀取,包括系統(tǒng)配置、用戶組、群組欄目、用戶欄目、詞語屏蔽、積分規(guī)則、廣告、用戶向導任務、模塊、MYOP默認應用等信息。其中模板緩存的使用前面單獨介紹過,見《【UCHome二次開發(fā)】模板解析》。

UCHome中常用數(shù)據(jù)是作為全局變量來使用的,具體用法可參考《【UCHome二次開發(fā)】全局變量》。以下著重介紹緩存機制的具體實現(xiàn)。

1、緩存數(shù)據(jù)文件的生成

UCHome生成的緩存數(shù)據(jù)文件位于/data/目錄下。

緩存生成的相關函數(shù)位于/source/function_cache.php文件中,生成緩存的函數(shù)羅列如下:

  • config_cache() 更新配置信息緩存,生成緩存文件data_config.php
  • usergroup_cache() 更新用戶組緩存,生成緩存文件data_usergroup.php
  • profilefield_cache() 更新用戶欄目緩存,生成緩存文件data_profilefield.php
  • profield_cache() 更新群組欄目緩存,生成緩存文件data_profield.php
  • censor_cache() 更新詞語屏蔽緩存,生成緩存文件data_censor.php
  • creditrule_cache() 更新積分規(guī)則,生成緩存文件data_creditrule.php
  • ad_cache() 更新廣告緩存,生成緩存文件data_ad.php
  • task_cache() 更新用戶向導任務,生成緩存文件data_task.php
  • block_cache() 更新模塊,生成緩存文件data_block.php
  • tpl_cache() 更新模板緩存,清空模板緩存文件夾/data/tpl_cache/下所有文件使模板緩存重新生成
  • block_data_cache() 更新模塊緩存,清空模板緩存數(shù)據(jù)使緩存重新生成
  • userapp_cache() 更新MYOP默認應用,生成緩存文件data_userapp.php
  • app_cache() 更新應用名,生成緩存文件data_app.php

除了模板和模塊數(shù)據(jù)外,其他的只需調用對應的函數(shù)就可生成對應的緩存數(shù)據(jù)文件。具體緩存生成的數(shù)據(jù)格式可查看對應文件。

2、緩存數(shù)據(jù)文件的分析

我們來看一下其中一個緩存文件,群組欄目緩存data_profield.php文件,如下:

 
01 <?php
02 if(!defined('IN_UCHOME')) exit('Access Denied');
03 $_SGLOBAL['profield']=Array
04     (
05     1 => Array
06         (
07         'fieldid' => 1,
08         'title' => '班級',
09         'formtype' => 'multi',
10         'inputnum' => 100,
11         'mtagminnum' => 0,
12         'manualmoderator' => 1,
13         'manualmember' => 1
14         )
15     2 => Array
16         (
17         'fieldid' => 2,
18         'title' => '實踐活動',
19         'formtype' => 'text',
20         'inputnum' => 100,
21         'mtagminnum' => 0,
22         'manualmoderator' => 1,
23         'manualmember' => 1
24         )
25     )
26 ?>

第二行代碼保證了緩沖數(shù)據(jù)無法被直接調用,而要求在UCHome中才有效。當然這是君子協(xié)定,只要在調用代碼前define一下IN_UCHOME即可繞過驗證。

之后的代碼其實只是做了變量賦值,將群組欄目數(shù)據(jù)賦值到$_SGLOBAL['profield']中,因為之前$_SGLOBAL以被定義為global全局變量,因為群組欄目數(shù)據(jù)便能全局訪問了。

3、緩存數(shù)據(jù)文件的使用

從上面分析可看出,緩存數(shù)據(jù)文件其實就是php代碼文件,直接引入執(zhí)行。因而我們的緩存使用也就很方便了,只需將緩存文件使用include/include_once/require/require_once等函數(shù)引入進來即可使用,調用對應的變量來獲取緩存的數(shù)據(jù)。

但為了保證緩存的存在,使用時最好加一個檢測;如果緩存數(shù)據(jù)不存在,則先生成一遍緩存數(shù)據(jù)。綜合起來,緩存的代碼參考如下:

 
 
1 if(!@include_once(S_ROOT.'./data/data_usergroup.php')) {
2     include_once(S_ROOT.'./source/function_cache.php');
3     usergroup_cache();
4 }

調用不同的緩存請更換對應的緩存文件和緩沖函數(shù)。

4、緩存數(shù)據(jù)文件的手動更新

在管理員成員的后臺高級管理里有一項是緩存更新,可用戶手動更新緩存,在系統(tǒng)全局配置變動后建議手動做一次緩存更新。

版權所有:武漢網(wǎng)?;ヂ?lián)科技有限公司    鄂ICP備09022096號
業(yè)務QQ:23444550 客服QQ:267052100 電郵:23444550@qq.com  

鄂公網(wǎng)安備 42010602000905號

手機站二維碼