Smartyのキャッシュについて

エンジニアリングチームの杉本です。
社内LTにて上がったSmartyのキャッシュについて簡単にご紹介します。

Smartyとは

Smartyとは、簡単にいうとPHP用のテンプレートエンジンのことです。
F-RevoCRMではSmartyを用いてView側のコードを記述しています。
PHPとHTML(CSS)を分けて記述することが出来るため、View側のコードを分割して管理することが出来ます。
同じ処理で別の内容を表示したいときには、View側のコードだけを変更することで 表示する内容を変更することが可能です。

Smartyのキャッシュ管理について

Smartyのキャッシュ管理には以下の2パターンがあります。

  1. templates_c フォルダ
    SmartyテンプレートからHTML出力されるまでの間の中間ファイルが格納されます。
  2. cacheフォルダ
    キャッシュファイルが格納されます。

Smartyのキャッシュ問題について

smartyを使用していると、View側のテンプレートを編集しても反映されない場合がありました。
変更が反映されない場合、キャッシュに残っているファイルが原因で古い画面が表示されている可能性があります。
この場合はSmartyのキャッシュクリアを行う事で、編集後の画面を表示させる必要があります。

Smartyのキャッシュクリア方法について

F-RevoCRMのルートフォルダ直下で以下のスクリプトを実行することで、Smartyのキャッシュをクリアすることが可能です。

<?php
include_once('includes/Loader.php');
include_once('include/utils/CommonUtils.php');
include_once('includes/runtime/Viewer.php');

$smarty = new Vtiger_Viewer();
$smarty->clearAllCache();
$smarty->clearCompiledTemplate(); 

また、直接以下のフォルダを削除することで、キャッシュをクリアすることも可能です。
 F-RevoCRMルートフォルダ/cache
 F-RevoCRMルートフォルダ/test/templates_c/vlayout/

それでは次回もまたThinkingreedエンジニアリングBlogをよろしくおねがいします!!

ご質問・お問い合わせはこちら

メールフォームへ