第六章:【UCHome二次開発】キャッシュメカニズム解析


UCHomeの共通データは、システム構成、ユーザグループ、グループ欄、ユーザ欄、ワードマスク、積分規則、広告、ユーザウィザードタスク、モジュール、MYOPデフォルトアプリケーションなどの情報を含むキャッシュを呼び出すことによって読み取りが実現される.ここでテンプレートキャッシュの使用については前述したように単独で説明したが、「【UCHome二次開発】テンプレート解析」を参照してください.
UCHomeでよく使われるデータはグローバル変数として使われますが、具体的な使い方は『【UCHome二次開発】グローバル変数』を参考にしてください.以下では、キャッシュメカニズムの具体的な実装に重点を置いて説明します.
1、キャッシュデータファイルの生成
UCHomeが生成したキャッシュデータファイルは/data/ディレクトリの下にあります.
キャッシュ生成の関連関数は/source/function_にあります.cache.phpファイルでは、キャッシュを生成する関数を次のように羅列します.
  • 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()積分規則を更新し、キャッシュファイル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()モジュールキャッシュを更新し、テンプレートキャッシュデータをクリアしてキャッシュを再生成する
  • .
  • userapp_Cache()MYOPデフォルトアプリケーションを更新し、キャッシュファイルdata_を生成userapp.php
  • app_Cache()アプリケーション名を更新し、キャッシュファイルdata_を生成app.php

  • テンプレートやモジュールデータのほか、対応する関数を呼び出すだけで対応するキャッシュデータファイルを生成できます.キャッシュによって生成されたデータフォーマットは、対応するファイルを表示します.
    2、キャッシュデータファイルの分析
    キャッシュファイルの1つ、グループ・カラム・キャッシュdata_を見てみましょう.profield.phpファイルは、次のとおりです.
    <?php
    
    if(!defined('IN_UCHOME')) exit('Access Denied');
    
    $_SGLOBAL['profield']=Array
    
        (
    
        1 =>Array
    
            (
    
            'fieldid' => 1,
    
            'title' => '  ',
    
            'formtype' =>'multi',
    
            'inputnum' =>100,
    
            'mtagminnum' =>0,
    
            'manualmoderator'=> 1,
    
            'manualmember'=> 1
    
            )
    
        2 =>Array
    
            (
    
            'fieldid' => 2,
    
            'title' =>'    ',
    
            'formtype' =>'text',
    
            'inputnum' =>100,
    
            'mtagminnum' =>0,
    
            'manualmoderator'=> 1,
    
            'manualmember'=> 1
    
            )
    
        )
    
    ?>

    2行目のコードは、バッファデータが直接呼び出されないことを保証し、UCHomeで有効にする必要があります.もちろんこれは君子協定です.コードを呼び出す前にINをdefineしてください.UCHOMEは検証を迂回することができます.
    その後のコードは変数付与にすぎず,グループ欄データを$_に付与する.SGLOBAL['profield']では、前の$SGLOBALはglobalグローバル変数として定義されている.グループ欄データがグローバルにアクセスできるからである.
    3、キャッシュデータファイルの使用
    以上の解析から,キャッシュデータファイルはphpコードファイルであり,実行に直接導入されていることがわかる.したがって、キャッシュファイルをinclude/include_を使用するだけで、キャッシュの使用も容易になります.once/require/require_onceなどの関数を導入すれば使用でき,対応する変数を呼び出してキャッシュされたデータを取得する.
    しかし、キャッシュの存在を保証するために、使用時に検出を追加したほうがいい.キャッシュデータが存在しない場合は、まずキャッシュデータを生成します.統合すると、キャッシュのコードは以下のように参照されます.
    if(!@include_once(S_ROOT.'./data/data_usergroup.php')) {
    
       include_once(S_ROOT.'./source/function_cache.php');
    
    usergroup_cache();
    
    }

    異なるキャッシュを呼び出すには、対応するキャッシュファイルとバッファ関数を交換してください.
    4、キャッシュデータファイルの手動更新
    管理者メンバーのバックグラウンドの高度な管理にはキャッシュ更新があり、ユーザーが手動でキャッシュを更新することができ、システムのグローバル構成が変更された後、手動でキャッシュ更新を行うことをお勧めします.
    すべての章をダウンロード:http://download.csdn.net/source/3579636記事の抜粋:http://wenku.baidu.com/view/ffd8a5c14028915f804dc2e0.html