Symfony 2 - Попытка вызова функции "apcu_fetch" из пространства имен "Doctrine \ Common \ Cache"

php symfony caching doctrine-orm doctrine

6503 просмотра

2 ответа

Я использую PHP7.0.8 и кэш доктрины (с APCU) в моем проекте Symfony. Когда я вызываю функцию из моих контроллеров, которые используют этот кеш, никаких проблем, все работает отлично!

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

[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

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

Автор: graille Источник Размещён: 08.11.2019 11:23

Ответы (2)


11 плюса

Решение

Я исправил ту же проблему, установив И включив 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 загружен.

Автор: Christoph Pernsteiner Размещён: 20.09.2016 08:57

2 плюса

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

Автор: xurshid29 Размещён: 20.08.2016 05:21
Вопросы из категории :
32x32