2016-08-20 1 views
4

Я использую PHP7.0.8 и кэш доктрины (с APCU) в моем проекте symfony. Когда я вызываю функцию от моих контроллеров, которые используют этот кеш, никаких проблем, он работает отлично!Symfony 2 - Попытка вызова функции «apcu_fetch» ​​из пространства имен «Doctrine Common Cache»

Но когда я создаю файл команды, которые используют хранилище, которые используют кэш доктрины, и когда я запускаю эту команду на моей оболочке, у меня ошибка:

[Symfony \ Component \ Debug \ Exception \ UndefinedFunctionException]
Попытка вызова функции apcu_fetch из пространства имен «Doctrine \ Common \ Cache».

Моя конфигурация:

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 

тот же код работает, если я запустить его в контроллер :( Я думаю, что это ошибка, любая идея

+0

У меня такая же проблема на CircleCI, даже если она хорошо работает на серверах и локальных env. Вы нашли решение? – LaurentG

ответ

4

Я исправил ту же проблему, установив И включив php-apcu на моем компьютере ubuntu.

sudo apt-get install -y php-apcu 

НЕ забудьте включить модуль:

sudo phpenmod apcu 

Дважды проверьте, что PHP-apcu загружается в версии командной строки вашего PHP конфигурации. Попробуйте выполнить следующую команду в командной строке

php -i | grep apcu 

я получил что-то подобное, как выход:

/etc/php/7.0/cli/conf.d/20-apcu.ini, 
apcu 

, который показывает мне, что apcu загружается.

2

При запуске PHP из командной строки? , вы на самом деле вызываете php-cli (интерпретатор командной строки), а не php. Php и php-cli разные, они используют разные конфигурационные файлы, а также могут использовать разные расширения. Проверьте расширения php-cli.

+0

Oh tahnks :) Я увижу это и отправлю, когда это будет сделано: D – graille