gra*_*lle 8 php caching doctrine symfony doctrine-orm
我在我的symfony项目中使用PHP7.0.8和doctrine缓存(使用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
Run Code Online (Sandbox Code Playgroud)
如果我在控制器中运行它,相同的代码可以工作:(我认为这是一个错误,任何想法?
小智 11
我通过在我的ubuntu机器上安装AND启用php-apcu来解决同样的问题.
sudo apt-get install -y php-apcu
Run Code Online (Sandbox Code Playgroud)
不要忘记启用该模块:
sudo phpenmod apcu
Run Code Online (Sandbox Code Playgroud)
仔细检查php-apcu是否在php配置的命令行版本中加载.尝试在命令行上运行以下命令
php -i | grep apcu
Run Code Online (Sandbox Code Playgroud)
我有类似的输出:
/etc/php/7.0/cli/conf.d/20-apcu.ini,
apcu
Run Code Online (Sandbox Code Playgroud)
这告诉我apc已加载.