Zend_Translate,通过应用程序资源插件设置日志?

时间:2010-11-08 15:06:57

标签: zend-framework resources zend-translate zend-application

我正在.ini文件中使用应用程序资源插件来使用以下代码设置我的Zend_Translate:

resources.translate.data = APPLICATION_PATH "/../languages"
resources.translate.adapter = "gettext" 
resources.translate.options.scan =  "directory"

现在我想将日志功能添加到translate中,在bootstrap中我会这样做:

$writer = new Zend_Log_Writer_Stream( APPLICATION_PATH . '/../logs/translate.log');
$log    = new Zend_Log($writer);
$translate->setOptions(
                array(
                    'log'             => $log,
                    'logUntranslated' => true
                )
            );

有关此问题的2个问题: 首先,是否可以在.ini文件中使用它?

其次,可以在引导程序中“扩展”资源设置吗?换句话说,我是否可以在bootstrap中将此日志选项添加到translate中,同时保留已在.ini文件中进行的其他设置?

1 个答案:

答案 0 :(得分:0)

好吧,我还没有在ini文件中找到解决方法,但是我找到了一种方法来从引导程序中的ini文件“扩展”我的设置而不覆盖它们。我设法这样做:

protected function _initTranslate()
{

    $writer = new Zend_Log_Writer_Stream( APPLICATION_PATH . '/../somedir/somefile.log');
    $log    = new Zend_Log($writer);

    // get the translate resource from the ini file and fire it up
    $resource = $this->getPluginResource('translate');
    $translate = $resource->getTranslate();

    // add the log to the translate
    $translate->setOptions(
            array(
                'log'             => $log,
                'logUntranslated' => true
            )
        );


    // return the translate to get it in the registry and so on
    return $translate;      

}

这很好用。我打算从.ini中删除翻译,因为我正在切换到我自己的适配器而不知道(还)如何从ini中取出它。