J'ai moi-même commencé à exécuter Drupal 7 sur PHP 5.4 avec seulement des problèmes mineurs sous forme d'avis et d'avertissements.
En plus de 7.12, vous aurez besoin de ces deux correctifs pour résoudre les problèmes qui provoquent la plainte de PHP:
http://drupal.org/files/menu-link-save-1338282-15-d7.patch
http://drupal.org/files/database-query-clone-1414412-11-d7_0.patch
L'un de ces correctifs a déjà été appliqué à -dev, il le sera donc en 7.13, et l'autre devrait bientôt arriver. Dans tous les cas auxquels je peux penser immédiatement, la mauvaise pratique à l'origine des avertissements 5.4 a été une mauvaise utilisation des clés de tableau.
La première version de ceci ressemble à ceci:
$some_key = function_call();
return $some_array[$some_key];
Parfois, l'appel de fonction retourne un tableau ou un objet, dont aucun n'est une clé de tableau valide. En PHP 5.3, ce qui se passe réellement et silencieusement ressemble à ceci:
$some_key = function_call();
return $some_array[(string)$some_key];
PHP 5.4 prévient cependant que ce n'est peut-être pas ce que vous voulez. La deuxième version est exactement la même, mais l'inverse.
$some_key = 'a_valid_key';
$may_be_a_string = function_call();
return $may_be_a_string[$some_key];
ce qui donne un message d'erreur comme
Décalage de chaîne illégal 'a_valid_key'
every $may_be_a_string
est en fait une chaîne, pas un tableau, car les seuls index de chaîne valides sont des entiers.
Comme les problèmes sont faciles à comprendre et que le correctif est (principalement) facile à appliquer, j'ai constaté que dans plusieurs cas, les versions de -dev sont déjà mises à jour ou des correctifs publiés dans la file d'attente, qui sont susceptibles d'entrer rapidement en raison de leur nature simple.
Après quelques tests, je ne pense pas que la version 5.4 soit "dangereuse" à exécuter en production, et j'ai déjà commencé à exécuter mes petits sites personnels dessus. J'encourage les autres à faire de même, afin que nous puissions éviter l'adoption historiquement lente des nouvelles versions de PHP.
Au moment d'écrire ces lignes, la dernière version d'APC, 3.1.9, ne fonctionne pas avec 5.4. J'ai réussi à le construire et à l'utiliser depuis git.
L'utilisation d'APC réduira probablement les performances de la mise à niveau de la version PHP, mais ne la supprimera pas.