2016-05-23 25 views
1

Ich benutze eine Ubuntu 16.04 LTS VM mit einem LAMP Setup, welches PHP 7.0 installiert hat. Wenn ich meinen Code ausführe, erhalte ich den folgenden Fehler: Class 'APCIterator' not found.APCIterator Klasse nicht gefunden für PHP7

stellte ich sicher, ich habe APCU installiert und aktiviert:

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

Gibt es etwas, was ich tun konnte, dieses Problem zu lösen (ohne den PHP-Code zu bearbeiten), oder sollte ich wechseln Sie einfach zurück zu Ubuntu 14 LTS und benutze PHP 5?

+0

siehe [dies] (http://stackoverflow.com/questions/34170434/how-install-apcu-as-php7-extension-on-debian) Antwort – DevDonkey

+0

@DevDonkey Ich habe das versucht und APCu wurde korrekt installiert , aber ich denke, ich brauche APC-Unterstützung (die ich glaube, seit PHP7 veraltet ist). Der Fehler 'Class' APCIterator 'not found' bleibt bestehen. – JasonK

Antwort

2

PHP 7 entfernt Abwärtskompatibilität mit der APC-API. Sofern Sie ein backwards compatibility layer verwenden, wird die Klasse jetzt APCUIterator genannt:

$ 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) 

Beachten Sie, dass der API zwischen den Klassen geändert hat: der \APCIterator Konstruktor den Cache überlaufen hat, während die \APCUIterator ein Muster, zu welchem ​​die zu iterieren.