问题描述
我在我的 symfony 项目中使用 PHP7.0.8 和学说缓存(带有 APCU).当我从使用此缓存的控制器调用函数时,没有问题,它工作正常!
I'm using PHP7.0.8 and the doctrine cache (with APCU) in my symfony project. When I call function from my controllers which use this cache, no problems, It works fine !
但是当我创建一个使用存储库的命令文件时,当我在我的 shell 上运行这个命令时,我遇到了错误:
But when I create a command file which use a repository which use the doctrine cache, and when I run this command on my shell, I've the error :
[SymfonyComponentDebugExceptionUndefinedFunctionException]
试图从命名空间DoctrineCommonCache"调用函数apcu_fetch".
[SymfonyComponentDebugExceptionUndefinedFunctionException]
Attempted to call function "apcu_fetch" from namespace "DoctrineCommonCache".
我的配置:
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
如果我在控制器中运行相同的代码 :(我认为这是一个错误,知道吗?
The same code works if I run it in a controller :( I think it's a bug, any idea ?
推荐答案
我通过在我的 ubuntu 机器上安装并启用 php-apcu 解决了同样的问题.
I fixed the very same problem by installing AND enabling php-apcu on my ubuntu machine.
sudo apt-get install -y php-apcu
别忘了启用模块:
sudo phpenmod apcu
仔细检查 php-apcu 是否已加载到您的 php 配置的命令行版本中.尝试在命令行上运行以下命令
Double check that php-apcu is loaded in the command line version of your php config. Try to run the following on the command line
php -i | grep apcu
我得到了类似的输出:
/etc/php/7.0/cli/conf.d/20-apcu.ini,
apcu
这表明 apcu 已加载.
which shows me that apcu is loaded.
这篇关于Symfony 2 - 试图调用函数“apcu_fetch"来自命名空间“DoctrineCommonCache"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!