Answers:
我已经开始自己在PHP 5.4上运行Drupal 7,并且只有小问题,例如通知和警告。
在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。PHP 5.3 + APC的Performace大于5.4。