Zend Db Translate如何与Cache配合使用

时间:2013-11-21 01:51:24

标签: php zend-framework

我有以下代码:

Zend_Translate::setCache($cache);// set the cache

$translate = new Zend_Translate( 
            array('adapter' => 'DBCustom_Translate_Class', 
                 'tag'=>'translateCache'
                )
             );
$translate -> _('example')
$translate -> _('example2')
Zend_Translate::clearCache('translateCache');//please make abstraction about the fact I'm deleting the cache here.

Custom_Translate_Class扩展Zend_Translate_Adapter并实现抽象函数(_loadTranslationData和toString)

永远不会调用_loadTranslationData,为什么? 我希望能够检查db中是否存在转换标记,如果不是我想创建它,那么我需要能够在这个类中实际执行某些操作

使用缓存和自定义数据库转换类

的最佳做法是什么

2 个答案:

答案 0 :(得分:0)

我发现调用addTranslation方法$ translate-> addTranslation('Custom_Class_Adapter');将调用_loadTranslationData

答案 1 :(得分:0)

你的Custom_Translate_Class是否调用了它自己的父构造函数,就像这样? :

public function __construct($data, $locale = null, array $options = array())
{
    parent::__construct($data, $locale, $options);
}

顺便说一句,您应该将其重命名为Custom_Translate_Adapter,以遵守命名约定(但它不应影响其工作方式)。