トップページ > リリース > Ver.2.15.2リリース

Ver.2.15.2リリース

CharcoalPHP Ver.2.15.2をリリースしました。

今回の変更点は

  1. フレームワーク設定ファイル名を”xxx.global.ini”から”xxx.profile.ini”に変更
  2. キャッシュ機能の追加

の2点になります。
1の方は設定ファイル名を変えるだけで対応完了となります。

2ですが、やはりフレームワークにキャッシュ機構は欠かせない・・・ということで実装いたしました。

キャッシュ機能の追加

使い方はいたって簡単。

  1. フレームワーク設定ファイルに「CACHE_DRIVERS」エントリを追加
  2. キャッシュIDを決める
  3. ソースコード上でキャッシュを取得するコートを書く
  4. ソースコード上でキャッシュを設定するコードを書く

これで終わりです。

以下、順番に説明します。

フレームワーク設定ファイルに「CACHE_DRIVERS」エントリを追加

 まずフレームワーク設定ファイル(xxx.profile.ini)に”CACHE_DRIVERS”エントリを追加する作業です。
値はキャッシュドライバ名を指定します。複数登録することもでき、その場合はカンマで区切ってください。
デバッグ環境、リリース環境の両方で同じ設定にしたい場合は「default.profile.ini」の方にエントリを
追加し、それぞれの環境だけキャッシュを使いたい場合はその環境のフレームワーク設定ファイルにエントリ
を追加すればOKです。

 本バージョンにバンドルされているキャッシュドライバは以下の3つです。

キャッシュドライバ名 説明
file ファイル形式のキャッシュ。設定ファイルで保存場所を指定できます。
memcache PHPのMemcache拡張を利用したキャッシュ。
memcached PHPのMemcached拡張を利用したキャッシュ。

他のオブジェクト同様、キャッシュドライバも自分で実装することができます。

キャッシュIDを決める

 キャッシュにはオブジェクト(クラスのインスタンス)を含むどのようなデータも格納できますが、取得・
設定の際にはキャッシュを一意に認識するための「キャッシュID」が必要になります。キャッシュIDは任意
の長さの文字列で自由に決めることができます。ただし、複数のアプリケーション/プロジェクトで

 キャッシュサーバを共有する場合は注意が必要です。キャッシュIDが複数のアプリケーション/プロジェクトで
重複した場合、警告なしに上書きされますので、次回取得時に期待するデータのキャッシュが取得できないため
効率が大幅に落ちてしまいます。
 その場合は、アプリケーション/プロジェクトごとに使用するキャッシュサーバを変更するか、アプリケー
ション/プロジェクトでキャッシュIDが重複しないような命名規則を使用するようにしてください。

ソースコード上でキャッシュを取得するコートを書く

 キャッシュIDが決まったら、いよいよキャッシュを利用するコードを実装します。以下のような実装で
キャッシュデータをサーバから取り出すことができます。

簡単ですね。

ソースコード上でキャッシュを設定するコードを書く

 キャッシュデータを取得するには、事前にキャッシュを設定しなければなりません。当然ですが。
キャッシュデータを設定するには、以下のようにします。

キャッシュが存在しない場合、Charcoal_Cache::getメソッドはFALSEを返すため通常は以下のように
取得と設定を一箇所で書くことが多いでしょう。

複数のキャッシュドライバがある場合

 キャッシュデータ取得(Charcoal_Cache::get)の際、フレームワーク設定ファイルのCACHE_DRIVERSエントリに複数のキャッシュドライバが登録されている場合、フレームワークは設定された順番にキャッシュドライバを呼び出し、最初にヒットしたデータを返却します。

 キャッシュデータ設定(Charcoal_Cache::set)の際、フレームワークはCACHE_DRIVERSエントリに複数のキャッシュドライバすべてに対してキャッシュデータを設定使用としますが、いずれかのキャッシュサーバでエラーが起きてもフレームワークは例外などでアプリケーションにエラーを通知しません(警告ログは出力する場合があります)。

Pocket

Comments are closed.