使用缓存Zend Framework 2从自定义数据库加载转换

时间:2014-03-05 08:04:42

标签: caching localization zend-framework2 memcached

我想使用数据库中的自定义表格使用ZF2翻译标签。我有两个问题。 首先,我不想使用ZF2翻译器,因为据我所知,它使用的是mo文件,而且我必须在这些文件中专门加载我的查询结果,我不想这样做。我想编写我的函数,它将翻译标记作为参数,然后在DB中查询该标记的结果。我不确定这是一个好逻辑吗?有什么建议吗?

第二个问题,我想为此目的创建缓存。我不希望我的翻译功能总是连接到数据库并在每次从我的数据库中查询参数(标记)时查询。我希望脚本从DB加载第一次结果而不是存储在某种内存中,所以第二次调用视图文件时,那些结果将在那个内存中,这样脚本就不会连接到db了时间。我搜索了解决方案,我发现它可以在ZF2中使用memcached适配器完成,但是在服务器端,必须启用和安装扩展。还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

每次对转换表进行更改时,我都会生成一个包含翻译的PHP文件。

示例文件应如下所示:

<?php
// lets assume file was saved to
// data/translations/en_GB.php

return array(
    'Text which should be translated' => 'Translated result',
    // more translations here
);

编辑你的module.config.php:

'translator' => array(
    'locale' => 'en_GB',
    'translation_file_patterns' => array(
        array(
            'type'     => 'phparray',
            'base_dir' => __DIR__ . '/../../../data/translations',
            'pattern'  => '%s.php',
            'cache'    => 'cache_adapter_id',
        )
    ),
),

此外,您必须配置 cache_adapter_id 以使我们能够选择缓存机制(memcache等)。