PHP 5.4 и Drupal 7

Я слышал, что PHP 5.4 быстрее PHP 5.3.

Было бы хорошо, если Drupal 7 будет работать под 5.4, или различные модули могут начать разорвать сайт?

В любом случае, если я использую кеш-код операции APC, возможно, 5.4, вообще не предлагал бы никакой пользы?

Спасибо

31 голос | спросил john 6 PMpFri, 06 Apr 2012 22:48:23 +040048Friday 2012, 22:48:23

2 ответа


28

Я начал запускать 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, но не удалит ее.

ответил Letharion 6 PMpFri, 06 Apr 2012 22:58:14 +040058Friday 2012, 22:58:14
2

Вам следует избегать PHP 5.4, поскольку для него нет стабильного APC. Performace для PHP 5.3 + APC будет больше 5.4.

ответил vamur 17 PMpTue, 17 Apr 2012 17:04:16 +040004Tuesday 2012, 17:04:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132