我想我遇到了一个思维障碍,我就是无法摆脱自己的方式来解决这种情况。
在我继续之前,我的目标之一(如果可能的话)是'config_cache_enabled' => true在我的application.config.php文件中进行设置,以便我的配置全部合并在一起,同时能够缓存翻译。
在我的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_cache_enabled' => false但这不是我追求的目标。
甚至有可能做我正在尝试的事情吗?如果是这样,您可以分享的任何示例都会非常有帮助。