Я начал запускать Drupal 7 на PHP 5.4 самостоятельно, с небольшими проблемами в форме уведомлений и предупреждений.
В дополнение к 7.12 вам понадобятся эти два исправления, чтобы исправить проблемы, вызывающие жалобу PHP:
http://drupal.org/files/menu-link-save-1338282-15-d7.patch
http://drupal.org/files/database-query-clone-1414412-11-d7_0.patch
Один из этих патчей уже был применен к -dev, поэтому будет в 7.13, а другой, скорее всего, скоро появится. Во всех случаях, о которых я могу сразу подумать, плохая практика, вызывающая предупреждения 5.4, - это неправильное использование ключей массива.
Первая версия этого выглядит так:
$some_key = function_call();
return $some_array[$some_key];
Иногда вызов функции возвращает массив или объект, ни один из которых не является допустимым ключом массива. В PHP 5.3 то, что на самом деле происходит тихо, выглядит так:
$some_key = function_call();
return $some_array[(string)$some_key];
PHP 5.4, однако, предупреждает, что это может быть не то, что вы хотите. Вторая версия точно такая же, но наоборот.
$some_key = 'a_valid_key';
$may_be_a_string = function_call();
return $may_be_a_string[$some_key];
который выдает сообщение об ошибке, подобное
Недопустимое смещение строки 'a_valid_key'
всякий раз, когда $may_be_a_string
на самом деле является строкой, а не массивом, поскольку единственными допустимыми строковыми индексами являются целые числа.
Поскольку проблемы легко понять, а исправление (в основном) легко применить, я обнаружил, что в некоторых случаях версии -dev уже обновляются, или исправления, размещенные в очереди, которые, вероятно, быстро появятся из-за их простая природа.
После некоторого тестирования я не чувствую, что 5.4 «опасен» для запуска в производстве, и я уже начал запускать свои небольшие и личные сайты на нем. Я бы посоветовал другим сделать то же самое, чтобы мы могли избежать исторически медленного внедрения новых версий PHP.
На момент написания статьи последняя версия APC, 3.1.9, не работает с 5.4. Я успешно построил и использовал его из GIT, хотя.
Использование APC, вероятно, уменьшит выигрыш в производительности при обновлении версии PHP, но не удалит ее.
Вам следует избегать PHP 5.4, так как для него нет стабильного APC. Performace для PHP 5.3 + APC будет больше, чем 5.4.
источник