Ich habe angefangen, Drupal 7 auf PHP 5.4 selbst mit nur geringfügigen Problemen in Form von Hinweisen und Warnungen auszuführen.
Zusätzlich zu 7.12 benötigen Sie diese beiden Patches, um die Probleme zu beheben, die zu einer Beschwerde von PHP führen:
http://drupal.org/files/menu-link-save-1338282-15-d7.patch
http://drupal.org/files/database-query-clone-1414412-11-d7_0.patch
Einer dieser Patches wurde bereits auf -dev angewendet, wird also in 7.13 erscheinen, und der andere wird wahrscheinlich bald erscheinen. In allen Fällen, an die ich sofort denken kann, war die schlechte Praxis, die 5.4 Warnungen verursacht, die schlechte Verwendung von Array-Schlüsseln.
Die erste Version davon sieht folgendermaßen aus:
$some_key = function_call();
return $some_array[$some_key];
Manchmal gibt der Funktionsaufruf ein Array oder ein Objekt zurück, von denen keiner ein gültiger Array-Schlüssel ist. In PHP 5.3 sieht das, was tatsächlich und stillschweigend passiert, folgendermaßen aus:
$some_key = function_call();
return $some_array[(string)$some_key];
PHP 5.4 warnt jedoch davor, dass dies möglicherweise nicht das ist, was Sie wollen. Die zweite Version ist genau das gleiche, aber umgekehrt.
$some_key = 'a_valid_key';
$may_be_a_string = function_call();
return $may_be_a_string[$some_key];
das ergibt eine Fehlermeldung wie
Unzulässiger String-Offset 'a_valid_key'
Wann immer $may_be_a_string
es sich tatsächlich um eine Zeichenfolge handelt, nicht um ein Array, da die einzigen gültigen Zeichenfolgenindizes Ganzzahlen sind.
Da die Probleme leicht zu verstehen und die Lösung (meistens) leicht anzuwenden ist, habe ich festgestellt, dass in einigen Fällen -dev-Versionen bereits aktualisiert wurden oder Patches in der Warteschlange veröffentlicht wurden, die wahrscheinlich aufgrund von schnell eintreten werden ihre einfache Natur.
Nach einigen Tests habe ich nicht das Gefühl, dass es "gefährlich" ist, 5.4 in der Produktion auszuführen, und ich habe bereits damit begonnen, meine kleinen und persönlichen Websites darauf auszuführen. Ich würde andere dazu ermutigen, dasselbe zu tun, damit wir die historisch langsame Einführung neuer PHP-Versionen vermeiden können.
Zum Zeitpunkt des Schreibens funktioniert APCs neueste Version 3.1.9 nicht mit 5.4. Ich habe es aber erfolgreich von Git gebaut und benutzt.
Durch die Verwendung von APC wird wahrscheinlich der Leistungsvorteil eines Upgrades der PHP-Version verringert, jedoch nicht entfernt.