启用S​​ymfony的AppCache取代了Doctrine的ApcCache

时间:2015-09-13 17:45:57

标签: symfony doctrine-orm apc

在我的Symfony应用程序中启用AppCache时,突然注入的任何ApcCacheAppCache实例替换,产生:

  

传递给MyClass :: __ construct()的参数必须是Doctrine \ Common \ Cache \ ApcCache的实例,给出的AppCache实例

注射通过以下方式进行:

services:
    my_class:
        class: MyClass
        arguments:
            - @cache
    cache:
        class: Doctrine\Common\Cache\ApcCache

这看起来很奇怪。关于如何解决这个问题的任何建议都将非常感激。

1 个答案:

答案 0 :(得分:0)

根据之前的回复和我的分析,似乎在使用http缓存($ kernel = new AppCache($ kernel);在app.php中)时,Symfony会创建一个@cache变量,它是AppCache的一个实例。它将覆盖您创建的@cache变量。因此,您的变量的名称不同,如:

services:
    my_class:
        class: MyClass
        arguments:
            - @apc_cache
    apc_cache:
        class: Doctrine\Common\Cache\ApcCache

这似乎是Symfony3.0.3的错误