Wie ist Eure Erfahrung damit, ist das wirklich so kritisch?Zitat:
Die PHP APC-Erweiterung ist installiert.
Die Verwendung der PHP APC-Erweiterung mit Composer kann zu unerwarteten "cannot redeclare class"-Fehlern führen.
Druckbare Version
Wie ist Eure Erfahrung damit, ist das wirklich so kritisch?Zitat:
Die PHP APC-Erweiterung ist installiert.
Die Verwendung der PHP APC-Erweiterung mit Composer kann zu unerwarteten "cannot redeclare class"-Fehlern führen.
Erst mal muss man zwischen APC (genau genommen dessen OpCode-Cache) und APCU (reiner User-Cache) unterscheiden.
Der OpCode-Cache von APC macht Probleme, wobei APC seit PHP 5.3 deprecated ist und durch APCU ersetzt werden sollte.
APCU kann ohne Probleme genutzt werden und sollte auch keine Meldung bringen von wegen "APC ist installiert".
In PHP 5.5 wird wohl der Zend OPCache genutzt / mitgeliefert.
Der Fehler "could not redeclare class" tritt willkürlich auf. Sobald das passiert ist kannst du bis zum Neustart des Apache oder FPM dann halt der Composer-Client nicht mehr verwenden, weil der Fehler kontinuierlich ist. Der OpCode-Cache von APC hat mit Phar Dateien so seine Probleme.
Also ja, ist sehr kritisch, sonst würden wir nicht explizit darauf prüfen. ;)
Hmm, wenn ich mir den phpinfo output anschaue steht da was von:
Ist da nun der Check falsch oder macht die Emulation Probleme? (Check 9.2)Code:apc
APC support Emulated
apcu
APCu Support Enabled
Version 4.0.6
Ich teste das auch mal, Goneo hat es heute geschafft phar freizuschalten in Suhosin. :-)
Dürfte eigentlich nicht, siehe
https://github.com/contao-community-....php#L280-L291
oder
https://github.com/contao-community-...ck.php#L22-L32
oder
https://github.com/contao/check/blob....php#L106-L108
Jedenfalls kommt bei extension_loaded... bei apc und apcu jeweils true zurück.
Muss nicht hier:
https://github.com/contao/check/blob...poser.php#L106
die Negation weg? Wenn apcu installiert ist, gibt die Methode ja jetzt true zurück.
Haha, ja du hast recht, im Vergleich zu https://github.com/contao-community-...ck.php#L22-L32 und https://github.com/contao-community-....php#L280-L291 ist die Negierung bei https://github.com/contao/check/blob...poser.php#L106 natürlich falsch, weil apcu ja erlaubt ist.
Ich denke eher, das 'u' gehört weg bei 'apcu'. Ansonsten würde ja gar nicht auf 'apc' geprüft, da sollte dann ja schon true zurückgegeben werden.
Nein, das ist falsch!
http://www.phpgangsta.de/apcu-der-neue-user-cache
APCu wird auch unterstützt, nur eben kein APC.
Aber wenn APCu unterstützt wird, dann liefert extension_loaded('apc') auch true zurück, deshalb muss apcu gewhitelisted werden.
machst du ein Ticket oder soll ich?
Genau genommen muss es so aussehen: https://github.com/contao/check/pull/72/files
Wow bist du schnell :-)
Ja, ich denke so sieht das dann gut aus. So wird auch noch geprüft, ob eventuell APC installiert ist und nicht APCu. Darauf wollte ich ja eigentlich hinaus, wusste aber nicht, dass extension_loaded('apc') auch bei APCu true zurückliefert.
Muss es, weil APCu die ganzen User-Space-Caching Methoden bereitstellt und man sonst bei Prüfung auf extension_loaded('apc') ggf. fälschlicherweise davon ausgehen würde, das die User-Space-Caching Methoden nicht zur Verfügung stehen.
Entschuldigung wenn ich so ein altes Thema rauskrame. Aber APCu ist ein interessantes Thema und die Seite zu beschleunigen. Gibt es hier Nebenwirkungen mit Contao 4.X?