Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Symfony 2 DI容器中集成Zend Cache StorageFactory?_Php_Symfony_Dependency Injection_Zend Cache - Fatal编程技术网

Php 如何在Symfony 2 DI容器中集成Zend Cache StorageFactory?

Php 如何在Symfony 2 DI容器中集成Zend Cache StorageFactory?,php,symfony,dependency-injection,zend-cache,Php,Symfony,Dependency Injection,Zend Cache,如何将Zend Cache Factory集成到Symfony 2中,以便在config.yml中轻松更改缓存适配器 这是使用工厂获取适配器的传统方法 use Zend\Cache\StorageFactory; $cache = StorageFactory::factory(array( 'adapter' => array( 'name' => 'apc', 'options' => array('ttl' => 36

如何将Zend Cache Factory集成到Symfony 2中,以便在config.yml中轻松更改缓存适配器

这是使用工厂获取适配器的传统方法

use Zend\Cache\StorageFactory;

$cache = StorageFactory::factory(array(
    'adapter' => array(
        'name'    => 'apc',
        'options' => array('ttl' => 3600),
    ),
    'plugins' => array(
        'exception_handler' => array('throw_exceptions' => false),
    ),
));
资料来源:

因为zend缓存库已经由composer安装。将其集成到DI容器中以便在应用程序的任何位置配置缓存的最佳方法是什么

$this->get('my_cache.blog')
试试这个。(请记住,YAML格式可能存在问题)


以下是有关的详细信息。

Zend\Cache\Storage\Adapter类不存在。只有一个抽象Zend\Cache\Storage\Adapter\AbstractAdapter,Symfony DI不接受it@dextervip啊,对不起,我在看文档,并假设它是一个类,我现在看到你的困境。如果Symfony也不允许您指定接口,比如
Zend\Cache\Storage\StorageInterface
,我会感到惊讶。我想知道是否可以省略
class
选项?它也不接受接口,因为它尝试实例化,我不能省略该类,否则我会收到一个异常,说它缺少该类:(您能否设置工厂返回的类(在本例中为
Zend\Cache\Storage\Adapter\Apc
)?
services:
    my_cache.blog:
        class:          Zend\Cache\Storage\Adapter
        factory_class:  Zend\Cache\StorageFactory
        factory_method: factory
        arguments:
            - 
                adapter:
                    name: apc
                    options: { ttl: 3600 }
                plugins:
                    exception_handler: { throw_exceptions: false }