FuelPHPのキャッシュライブラリ – File編


まずは、fileストレージ

File

まず、cacheのコンフィグファイルをapp配下にコピーします。

cp fuel/core/config/cache.php fuel/app/config/cache.php

以下のように「fuel/app/config/cache.php」の内容を設定

return array(
	'driver' => 'file',
	'expiration' => null,
	'file' => array(
		'path' => '',
	),
);

これで、「file」ストレージをキャッシュに使用する設定ができました。

pathは設定していないと、デフォルトでは「fuel/app/cache」に

キャッシュの内容を保存したファイルが作成されます。

とりあえず、以下の内容でキャッシュを生成して試してみる

コードの内容は、

コントローラー

  public function action_cache()
  {
    // String
    Cache::set('string', 'cache test');
    $data['string'] = Cache::get('string');

    // Array
    $a = array(1, 2, array('key' => 'value'));
    Cache::set('array', $a);
    $data['array'] = Cache::get('array');

    // Object
    $o = new Library_Test();
    Cache::set('object', $o);
    $data['object'] = Cache::get('object');

    $this->template->title = 'Test » Cache';
    $this->template->content = View::forge('test/cache', $data);
  }

View

<p>Cache</p>
<div>String:<?php var_export($string) ?></div>
<div>Array :<?php var_export($array) ?></div>
<div>Class :<?php var_export($object) ?></div>
</p>

こんな感じです。

すると、画面上では

こんな感じになります。

で実際にキャッシュファイルの内容を確認すると

「fuel/app/cache」に以下の3ファイルが出来ていました。

  • array.cache
  • object.cache
  • string.cache

中身は、

{{Fuel_Cache_Properties}}{"created":1322409987,"expiration":null,"dependencies":[],"content_handler":"string"}{{/Fuel_Cache_Properties}}cache test

こんな感じ、

作成日時が「created」に入るみたい。

あとで確認するけど、「expiration」「dependencies」には、setメソッドの引数で渡される、expiration, dependenciesの情報がそれぞれ入るだろうと予想。

で、上記は文字列を保存したstring.cacheの内容だが、文字列はそのまま保存される模様。

同様に、array.cache、object.cacheの内容は、

{{Fuel_Cache_Properties}}{"created":1322409987,"expiration":null,"dependencies":[],"content_handler":"serialized"}{{/Fuel_Cache_Properties}}a:3:{i:0;i:1;i:1;i:2;i:2;a:1:{s:3:"key";s:5:"value";}}
{{Fuel_Cache_Properties}}{"created":1322409987,"expiration":null,"dependencies":[],"content_handler":"serialized"}{{/Fuel_Cache_Properties}}O:12:"Library_Test":0:{}

こんな感じ、phpのserialize関数を使用して保存されるもようでした。

関連する記事:

Facebookでコメント

コメント

  1. コメント 0

*

return top