Zend_Translate
Zend コンポーネントをスタンドアロン ライブラリとして使用して、PHP プロジェクトを追加しようとしています。
次の方法を使用して、すでにいくつかのアイテムにキャッシュを使用しています。
$cache = Zend_Cache::factory( ...
if (!($obj = $cache->load('OBJ')))
{
$obj = ...
$cache->save($obj);
}
のドキュメントに従って、実際にオブジェクトを作成する前に、Zend_Translate
同じ$cache
オブジェクトを myに設定します。Zend_Translate
setCache
Zend_Translate::setCache($cache);
$translate = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'languages',
null,
array('scan' => Zend_Translate::LOCALE_FILENAME)
)
);
そのため、ここでは、全体Zend_Translate
をキャッシュに入れるという通常の方法から離れています。現時点での全体的な結果は次のとおりです。
// 1.php
ob_start();
session_start();
$cache = Zend_Cache::factory( ...
if (!($obj = $cache->load('OBJ')))
{
$obj = ...
$cache->save($obj);
}
Zend_Translate::setCache($cache);
$translate = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'languages',
null,
array('scan' => Zend_Translate::LOCALE_FILENAME)
)
);
echo $translate->_("Hello, I'm the first script");
// end 1.php
と
// 2.php
ob_start();
session_start();
$cache = Zend_Cache::factory( ...
if (!($obj = $cache->load('OBJ')))
{
$obj = ...
$cache->save($obj);
}
Zend_Translate::setCache($cache);
$translate = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'languages',
null,
array('scan' => Zend_Translate::LOCALE_FILENAME)
)
);
echo $translate->_("Hello, I'm the second script");
// end 2.php
ページをロードするたびにキャッシュファイルが作成されることがわかっているため、このアプローチは機能しません。
不思議なんだけど:
Zend_Cache::factory
すべてのページで呼び出す必要があると仮定するのは正しいですか?- このスタンドアロンの状況で翻訳をキャッシュで動作させるにはどうすればよいですか?
- についての質問
Zend_Translate
:addTranslation
写真に何か追加できますか、それとも私のようにすべての翻訳をロードできますか?
ありがとうございました!