Smarty Cache の名前。
ちょいとお仕事で Smarty のキャッシュファイルについて
調べてみたのだけど。
あのファイル名って、どうやって作ってんのかなぁ?
てなこったで、Smarty のコードを読み読みした結果をメモ。
- テンプレートファイルパスから、ファイル名だけを取り出す
- ファイル名にURLエンコードをかける
- CRC32アルゴリズムで値を取得
- 大文字16進数にして、上位のあまった桁を0で埋めた値に変換
- 「%%」を表示
- 4 の値の上位2桁を表示
- 「^」を表示
- 4 の値の上位3桁を表示
- 「^」を表示
- 4 の値を表示
- 「%%」を表示
- 1 の値を表示
という訳で、結果、キャッシュファイル名は、こんな内容になる、と。
%% | 4 の値の上位2桁 | ^ | 4 の値の上位3桁 | ^ | 4 の値 | 1 の値 | %% |
で、試しに、Smarty ん中に実装されてたルーチンを
そこだけピックアップしてみたら
ちゃんと実際に生成されているキャッシュファイル名と一致しました。
えがったえがった。
おまけ:
Smarty キャッシュファイル名を返すスクリプト
※引き数のデフォルト値は template.tpl