Zend framework2 缓存翻译

Zend framework2 缓存翻译,zend-framework2,zend-translate,Zend Framework2,Zend Translate,我想我遇到了一个思维障碍,我就是无法用自己的方式来解决这个问题 在进一步讨论之前,我的目标之一(如果可能的话)是在我的application.config.php文件中设置'config\u cache\u enabled'=>true,以便在缓存翻译的同时将所有配置合并在一起 在我的module.config.php中,我有以下内容: 'translator' => array( 'locale' => 'en', 'tran

我想我遇到了一个思维障碍,我就是无法用自己的方式来解决这个问题

在进一步讨论之前,我的目标之一(如果可能的话)是在我的
application.config.php
文件中设置
'config\u cache\u enabled'=>true
,以便在缓存翻译的同时将所有配置合并在一起

在我的
module.config.php
中,我有以下内容:

'translator'  => array(
    'locale'                    => 'en',
    'translation_file_patterns' => array(
        array(
            'type'        => 'gettext',
            'base_dir'    => __DIR__ . '/../language',
            'pattern'     => '%s.mo',
            'text_domain' => 'mytextdomain'
        )
    )
)
翻译工作如期进行。现在我想添加缓存支持,因此我将前面的示例更改为:

'translator'  => array(
    'locale'                    => 'en',
    'translation_file_patterns' => array(
        array(
            'type'        => 'gettext',
            'base_dir'    => __DIR__ . '/../language',
            'pattern'     => '%s.mo',
            'text_domain' => 'mytextdomain'
        )
    ),
    'cache' => \Zend\Cache\StorageFactory::factory(array(
        'adapter' => array(
            'name'    => 'Filesystem',
            'options' => array(
                'cache_dir' => __DIR__ . '/../../../data/cache',
                'ttl'       => '3600'
            )
        ),
        'plugins' => array(
            array(
                'name'    => 'serializer',
                'options' => array()
            ),
            'exception_handler' => array(
                'throw_exceptions' => true
            )
        )
    ))
)
这会由于闭包()而导致循环引用问题。如果我设置
'config\u cache\u enabled'=>false,这将起作用,但这不是我追求的目标


甚至可以做我正在尝试的事情吗?如果是这样,您可以分享的任何示例都会非常有用。

您应该只在配置文件(将被缓存的文件)中写入原始数据。没有闭包,没有不能安全序列化的东西

这应该做完全相同的事情:

'translator'  => array(
    ...
    'cache' => array(
        'adapter' => array(
            'name'    => 'Filesystem',
            'options' => array(
                'cache_dir' => __DIR__ . '/../../../data/cache',
                'ttl'       => '3600'
            )
        ),
        'plugins' => array(
            array(
                'name'    => 'serializer',
                'options' => array()
            ),
            'exception_handler' => array(
                'throw_exceptions' => true
            )
        )
    )
)

您应该只在配置文件(将被缓存的文件)中写入原始数据。没有闭包,没有不能安全序列化的东西

这应该做完全相同的事情:

'translator'  => array(
    ...
    'cache' => array(
        'adapter' => array(
            'name'    => 'Filesystem',
            'options' => array(
                'cache_dir' => __DIR__ . '/../../../data/cache',
                'ttl'       => '3600'
            )
        ),
        'plugins' => array(
            array(
                'name'    => 'serializer',
                'options' => array()
            ),
            'exception_handler' => array(
                'throw_exceptions' => true
            )
        )
    )
)

谢谢,这正是我想要的。事实上,这是我从未想过要尝试的一件事。谢谢你,这正是我想要的。事实上,这是我从未想过要尝试的一件事。