Класс APCIterator не найден для PHP7

Я использую виртуальную машину Ubuntu 16.04 LTS с настройкой LAMP, на которой установлен PHP 7.0. Когда я запускаю свой код, я получаю следующую ошибку: Class 'APCIterator' not found,

Я убедился, что у меня установлен и включен APCu:

$ sudo apt-get install php-apcu // install package
$ sudo phpenmod apcu // enable it

Могу ли я что-нибудь сделать, чтобы решить эту проблему (без редактирования кода PHP), или я должен просто переключиться обратно на Ubuntu 14 LTS и использовать PHP 5?

1

Решение

PHP 7 убрал обратную совместимость с API APC. Если вы не используете уровень обратной совместимости, теперь класс называется APCUIterator:

$ php -d 'apc.enable_cli=1' -d 'apc.enabled=1' -a
Interactive shell

php > var_dump(ini_get('apc.enabled'));
string(1) "1"php > var_dump(ini_get('apc.enable_cli'));
string(1) "1"php > var_dump(function_exists('apcu_fetch'));
bool(true)
php > var_dump(extension_loaded('apcu'));
bool(true)
php > var_dump(class_exists('\APCIterator'));
bool(false)
php > var_dump(class_exists('\APCUIterator'));
bool(true)

Обратите внимание, что API между классами изменился: \APCIterator конструктор взял кеш для перебора, в то время как \APCUIterator берет шаблон, по которому итерировать.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector