我正在尝试添加Zend_Translate
一个 PHP 项目,使用 Zend 组件作为独立库。
我已经使用以下方法对多个项目使用缓存:
$cache = Zend_Cache::factory( ...
if (!($obj = $cache->load('OBJ')))
{
$obj = ...
$cache->save($obj);
}
现在,按照 的文档Zend_Translate
,我将相同的$cache
对象设置为 myZend_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
在图片中添加了任何内容,或者我可以像我一样加载我所有的翻译吗?
谢谢!