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 !
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 :
[Symfony\Component\Debug\Exception\UndefinedFunctionException]
Attempted to call function "apcu_fetch" from namespace "Doctrine\Common\Cache".
My configuration :
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 ?
I fixed the very same problem by installing AND enabling php-apcu on my ubuntu machine.
sudo apt-get install -y php-apcu
DON'T forget to enable the module:
sudo phpenmod apcu
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
I got something like that as output:
/etc/php/7.0/cli/conf.d/20-apcu.ini,
apcu
which shows me that apcu is loaded.
When you run php from command line, you're actually invoking a php-cli (command line interpreter), not php itself. Php and php-cli are different, they use different config file, and also they can use different extensions. Check you php-cli extensions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With