WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] 独自の設定ファイルをキャッシュしてsfConfigから利用する。

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

ymlファイルを読んで解析するには


$test = sfYaml::load('menu.yml');

で、取得できますが、これだとリクエストの度に解析をするので非効率です。
config/app.ymlなど、symfonyデフォルトの基本的な設定ファイルは解析結果をPHPのコードとしてキャッシュするようになっているので、そのシステムをうまく利用することが出来ます。
まず、設定ファイルを解析してPHPのコードに変換後保存するハンドラーを指定してやります。
app/config/config_handlers.ymlを作成して以下のように設定します。
ハンドラは独自に作成できますが、sfConfig::getで取得するだけなら、既存のsfDefineEnvironmentConfigHandlerを使えます。

config/menu.yml:
class: sfDefineEnvironmentConfigHandler
param:
prefix: menu_

そしてymlからのデータを使う前にキャッシュをincludeしてやります。
当然ですがキャッシュがなければ作ってくれます。

include(sfContext::getInstance()->getConfigCache()->checkConfig('config/menu.yml'));
$menu = sfConfig::getAll('menu_category');


[symfony 1.1.6]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。