我在我的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已加载。