Caching 使用缓存Zend Framework 2从自定义数据库加载翻译

Caching 使用缓存Zend Framework 2从自定义数据库加载翻译,caching,localization,zend-framework2,memcached,Caching,Localization,Zend Framework2,Memcached,我想使用数据库中的自定义表用ZF2翻译标记。 首先,我不想使用ZF2 translator,因为据我所知,它使用mo文件,而且我必须在这些文件中专门加载我的查询结果,我不希望这样。我想写我的函数,它将把translation标记作为参数,然后在DB中查询该标记的结果。我不确定这是不是一个好的逻辑?有什么建议吗 第二个问题,我想为此创建缓存。我不希望我的翻译函数总是连接到数据库,每次从我的数据库查询参数(标记)。我希望脚本第一次从DB加载结果,然后存储在某种内存中,这样第二次调用视图文件时,这些结

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


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

每次更改翻译表时,我都会生成一个包含您的翻译的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
);
此外,您必须配置缓存适配器\u id,以便我们使用您选择的缓存机制(memcache等)

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