Какие изменения в коде необходимы для совместимости расширений Joomla 3.5 с PHP7?

9

(Пожалуйста, терпите меня, извините, но я просто не могу спросить это быстро.)

Мы все не ждем стабильной версии Joomla 3.5.0, не так ли?

RC3 RC4 был выпущен сегодня, и это всего лишь вопрос нескольких дней, пока она не выйдет окончательно ( Joomla 3.5.0 Stable была только что выпущена в понедельник, 21 марта 2016 года ), после более чем года разработки и многочисленных изменений целей и отсрочки ETA.

Самая большая особенность, среди всех других заметных улучшений , безусловно, будет возможность работать на новейшем PHP7, что приведет к почти на 50% более быстрому выполнению и почти в 4 раза уменьшению потребления памяти ( источник ).

Из-за внутренних изменений в PHP7 (введение подсказок типов и теперь зарезервированных слов «int», «string» и «float») это приведет к разрыву обратной совместимости для многочисленных расширений, даже если само ядро ​​Joomla 3.5.0 будет быть полностью совместимым с PHP7.
( источник: нарушение обратной совместимости от RC4 Release News :)

У нас есть обещание обратной совместимости, чтобы гарантировать, что код внезапно не сломается. Однако есть обстоятельства, которые могут заставить нас больше не сдерживать это обещание. В Joomla 3.5 это так. Из-за изменений в PHP 7 нам пришлось переименовать класс String в StringHelper, в противном случае Joomla! не может работать на PHP 7. Это очень незначительное изменение, и мы не ожидаем каких-либо проблем с ним. Для тех, кто заинтересован, вы можете прочитать больше об этом в обновлении до пакета String 1.3 .

Я внимательно следил за ее разработкой и тестировал J! 3.5.0 на PHP7 SiteGround с момента ее первых бета-версий до новейшего RC4, и я могу подтвердить, что улучшения заметны и хороши.

НО ... Сейчас я очень обеспокоен тем, как быстро мы увидим все расширения, полностью обновленные для поддержки PHP7? Существует большая вероятность, что потребуются месяцы, пока мы не сможем свободно запускать наши сайты на новом PHP, настроенном так, как сейчас на v3.4.8.

ТАК ... Я серьезно подумываю вручную обновить некоторые из моих любимых расширений администратора для поддержки PHP7 , поэтому я могу продолжать использовать их в новой версии 3.5. Для тех, кто пользуется популярностью и активно поддерживается (например, Akeeba, JCE и т. Д.), Я буду ждать обновлений от разработчиков, надеясь, что они появятся довольно быстро. Но для тех, кто больше не поддерживается активно (есть многие из них, которые я продолжаю использовать целую вечность, просто не спрашивайте меня о деталях, пожалуйста), мне придется обновить их самостоятельно.

И ... наконец, мой вопрос: знаете ли вы, какие изменения в коде необходимы для того, чтобы сделать какое-то расширение совместимым с PHP7?
Я имею в виду, помимо изменений, которые должна была претерпеть сама команда Joomla для обновления до пакета String 1.3 ...

Mikan
источник
1
Я думаю, что большая часть этого сообщения может быть отредактирована / удалена. Основной вопрос - «Какие изменения в коде необходимы для совместимости расширений Joomla 3.5 с PHP7?» Хотя я думаю, что включенные ссылки на известные изменения важны.
TryHarder
1
@moomoochoo - Спасибо за изменение названия человека ... Я также думаю, что ссылки важны для более широкой аудитории ...
Микан
1
Если какое-либо из используемых вами расширений использует загрузчик ioncube, вам, возможно, придется подождать некоторое время. forum.ioncube.com/… В этой ситуации изменение расширения не поможет.
TryHarder
@oooooo - Спасибо за то, что указал на это, приятно знать, что ioncube по-прежнему несовместим с новейшим PHP, хотя мой основной упор делается на все эти маленькие вспомогательные расширения, которые опытные администраторы не могут себе представить, без нашего набора инструментов, и которые вряд ли используют этот уровень защиты лицензии.
Микан
1
Хотя это может не охватывать ваш фокус, я надеюсь, что это актуально и полезно для других :)
TryHarder

Ответы:

5

Хорошо, первым делом первым. Joomla 3.5.0 стабильно выйдет завтра в следующий понедельник :)

Я делаю шаг назад и сначала делаю резервную копию вашего сайта и устанавливаю его на поддомен или на локальный хост, используя PHP 7.0.4.

Сделав это, тщательно протестируйте его.

Что касается расширений, я Николас из Akeeba уже поддерживает PHP 7, и другие популярные расширения, скорее всего, уже его поддержат.

Я бы воздержался от внесения каких-либо изменений в ядро ​​самостоятельно и подождал, пока разработчик обновится, как и когда это возможно. Вы знаете тренировку "core hack" .... это область "не ходи".

Что касается изменений обратной несовместимости, взгляните на следующее с официального сайта PHP:

http://php.net/manual/en/migration70.incompatible.php

В общем, возможно, подождите пару месяцев, пока PHP 7 не станет более стабильным. Это все еще относительно ново, и определенно будут некоторые большие ошибки.

Надеюсь это поможет

Лоддер
источник
Конечно, это помогает ... Спасибо, человек ... Не могу дождаться завтрашнего дня ;-)
Mikan
Кажется, они снова отложили Стабильный :-( twitter.com/viktorvogel/statuses/710007837850791937 , но вместо этого они выпустили RC4 сегодня ... О, хорошо ...
Микан
2
@MirkoMikan - «Стабильный» уже в следующий понедельник
Lodder
2

Это НЕ ответ на мой вопрос, я просто хотел поделиться ссылкой, которую я только что нашел и которая может быть полезна при обновлении нашего Joomlas до 3.5:

Существует Google Doc « Список расширений Joomla!, Поддерживающих Joomla! 3.5 и PHP 7 », который общедоступен и поддерживается сообществом (в конце концов, мы говорим о Joomla :-)).

Я знаю, что я должен был поставить это как комментарий, а не как ответ, но я думаю, что это более заметно таким образом.

Mikan
источник