Bootstrapから、'db'リソースを取得して、プロファイラを設定するだけ。
コード例)
function _initDbProfile(){
$this->bootstrap('db');
$db=$this->getResource('db');
$profiler=new Zend_Db_Profiler_Firebug("All Querys");
$profiler->setEnabled(true);
$db->setProfiler($profiler);
}
ついでにメタデータをキャッシュする方法も追加すると以下のようになる。
コード例)メタデータをキャッシュする場合
function _initDbProfile(){
$this->bootstrap('db');
$db=$this->getResource('db');
$profiler=new Zend_Db_Profiler_Firebug("All Querys");
$profiler->setEnabled(true);
$db->setProfiler($profiler);
// フロントのオプション設定
$frontendOptions = array(
'automatic_serialization' => true
);
//バックエンドのオプション(ファイルへ吐き出すので、
//キャッシュファイルを配置するディレクトリを指定
$backendOptions = array(
'cache_dir' => APPLICATION_PATH . '/data/cache'
);
//キャッシュオブジェクトを作成。キャッシュはファイルへ
$cache = Zend_Cache::factory(
'Core',
'File',
$frontendOptions,
$backendOptions
);
// テーブルオブジェクトで使用するように設定します
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
}
Zend Framework1.10からはZend_Application_Resource_Cachemanagerが利用できるので、もう少し記述が簡単になるのと、定義を外部に出せるのでメンテナンスはしやすくなるはず。
Zend_Application_Resource_Cachemanagerはおいおい調査
0 件のコメント:
コメントを投稿