it-swarm.com.de

PHP 5.4 und Drupal 7

Ich habe gehört, dass PHP 5.4 schneller ist als PHP 5.3.

Wäre es in Ordnung, wenn Drupal 7 unter 5.4 ausgeführt wird), oder könnten verschiedene Module dazu beitragen, die Site zu beschädigen?

Wie auch immer, wenn ich den APC-Opcode-Cache verwende, würde 5.4 vielleicht überhaupt keinen Vorteil bieten?

Vielen Dank

30
john

Ich habe begonnen, Drupal 7 on 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 dazu führen, dass PHP) sich beschwert:

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 sein, und der andere wird wahrscheinlich bald verfügbar sein. In allen Fällen, an die ich sofort denken kann, war die schlechte Praxis, die 5.4-Warnungen verursachte, die schlechte Verwendung von Array-Schlüsseln.

Die erste Version davon sieht so aus:

$some_key = function_call();
return $some_array[$some_key];

Manchmal gibt der Funktionsaufruf ein Array oder ein Objekt zurück, von denen keines 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 die gleiche, aber umgekehrt.

$some_key = 'a_valid_key';
$may_be_a_string = function_call();
return $may_be_a_string[$some_key];

was eine Fehlermeldung wie ergibt

Unzulässiger String-Offset 'a_valid_key'

wann immer $may_be_a_string ist eigentlich eine Zeichenfolge, kein Array, da die einzigen gültigen Zeichenfolgenindizes Ganzzahlen sind.

Da die Probleme leicht zu verstehen sind und das Update (meistens) einfach anzuwenden ist, habe ich festgestellt, dass in einigen Fällen bereits -dev-Versionen aktualisiert wurden oder Patches in der Warteschlange veröffentlicht wurden, die aufgrund von wahrscheinlich schnell eingehen ihre einfache Natur.

Nach einigen Tests habe ich nicht das Gefühl, dass 5.4 in der Produktion "gefährlich" ist, und ich habe bereits damit begonnen, meine kleinen und persönlichen Websites darauf zu betreiben. Ich würde andere dazu ermutigen, dasselbe zu tun, damit wir die historisch langsame Aufnahme neuer PHP -Versionen) vermeiden können.

Zum Zeitpunkt des Schreibens funktioniert die neueste Version von APC, 3.1.9, nicht mit 5.4. Ich habe es jedoch erfolgreich von Git gebaut und verwendet.

Die Verwendung von APC verringert wahrscheinlich den Leistungsvorteil des Upgrades der Version PHP), entfernt sie jedoch nicht.

28
Letharion

Sie sollten PHP 5.4 vermeiden, da es keinen stabilen APC dafür gibt. Leistung für PHP 5.3 + APC wäre größer als 5.4.

2
vamur