我在我的symfony项目中使用php7.0.8和条令缓存(带apcu)。当我从使用这个缓存的控制器调用函数时,没问题,它工作得很好!
但是,当我创建一个命令文件,该文件使用使用Doctrine缓存的存储库,并且当我在shell上运行该命令时,会出现错误:
[symfony\component\debug\exception\undefinedfunctionexception]异常
试图从命名空间“doctrine\common\cache”调用函数“apcu fetch”。
我的配置:

doctrine:
dbal:
    driver:   pdo_mysql
    host:     "%database_host%"
    port:     "%database_port%"
    dbname:   "%database_name%"
    user:     "%database_user%"
    password: "%database_password%"
    charset:  UTF8
orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    entity_managers:
        default:
            auto_mapping: true
            mappings:
                StofDoctrineExtensionsBundle: ~
            metadata_cache_driver: apcu
            query_cache_driver: apcu
            result_cache_driver: apcu

如果我在控制器中运行,同样的代码也可以工作:(
我想是虫子,知道吗?

最佳答案

我通过在我的ubuntu机器上安装和启用phpacu解决了同样的问题。

sudo apt-get install -y php-apcu

不要忘记启用模块:
sudo phpenmod apcu

仔细检查php apcu是否加载在php config的命令行版本中。尝试在命令行上运行以下命令
php -i | grep apcu

我得到了这样的输出:
/etc/php/7.0/cli/conf.d/20-apcu.ini,
apcu

这表明APCU已加载。

08-26 08:06