WordPress скоро обновится до версии 5.6, которая нацелена на совместимость с PHP 8. Однако WordPress предупредил, что его следует рассматривать как «бета-совместимый», и объяснил, почему обновление до PHP 8 в настоящее время должно производиться с осторожностью.
Справочная информация о PHP
PHP — это язык программирования, который запускается на сервере для создания веб-страницы. Сам WordPress создан на языке PHP.
Текущая версия PHP — PHP 7x. «X» — это ссылка на различные версии PHP 7, которые в настоящее время представляют собой 7.2, 7.3 и 7.4.
Версии до 7.2 достигли «конца срока службы» ( EOL ) и больше не обновляются с помощью исправлений безопасности.
Самая старая версия, 7.2, должна достичь EOL 30 ноября 2020 года. Это означает, что она больше не будет получать обновления безопасности и по этой причине станет потенциальной угрозой безопасности для любого сайта, все еще использующего ее, в случае обнаружения уязвимости в будущее.
Версия 7.3 должна выйти на EOL 6 декабря 2021 года.
Издателям нужно до 2022 года обновляться до PHP 8?
Текущая и самая последняя версия PHP 7.x — это версия 7.4. PHP 7.4 достигнет EOL 8 ноября 2022 года.
Это означает, что технически у издателей WordPress есть два года, чтобы решить, когда обновить свою версию PHP до PHP 8. На практике, однако, большинство издателей WordPress должны иметь возможность обновиться до PHP 8 задолго до этого времени.
Почему WordPress 5.6 совместим с бета-версией
WordPress объявил, что последняя версия, выпущенная в декабре 2020 года, должна быть совместима с PHP 8. Тем не менее, предупредил, что все еще возможно, что не обнаруженные несовместимости могут существовать.
Это признание того факта, что хотя основная установка WordPress может быть совместима с PHP 8, все же существует вероятность того, что что-то было упущено из виду.
Вот как это в руководстве WordPress 5.6 PHP 8 сформулировано в
«WordPress Core стремится быть совместимым с PHP 8.0 в версии 5.6 (в настоящее время запланировано на 8 декабря 2020 г.).
… Значительные усилия были приложены к тому, чтобы WordPress 5.6 сам по себе был совместим с PHP 8, но весьма вероятно, что остаются еще не обнаруженные проблемы ».
Факт наличия «не обнаруженных проблем» не является негативным заявлением о версии WordPress 5.6. Это прагматическое признание того, что в программировании, как и во многих других инженерных разработках, почти всегда существует вероятность возникновения непредвиденных ошибок или упущений.
Возможно, более важным соображением является неопределенность в отношении того, когда темы и плагины станут совместимыми с PHP 8. Это больше, чем что-либо еще, может способствовать тому, чтобы WordPress не считался полностью совместимым с PHP 8.
Официальное руководство WordPress 5.6 сообщало:
«Также следует признать, что WordPress никогда не используется изолированно (без какой-либо темы или плагинов), поэтому сама возможность работы на PHP 8 не означает «полную» совместимость.
Состояние поддержки PHP 8 в более широкой экосистеме (плагины, темы и т. Д.) Узнать невозможно. По этой причине WordPress 5.6 следует считать «бета-версией» с PHP 8. »
WordPress 5.6 совместим с PHP 8
В разработке программного обеспечения обычно есть две окончательные версии выпуска. Есть альфа-версия, а затем бета-версия. Бета-версия обычно считается почти готовой к выпуску. Бета-версия программного обеспечения — это то, что предшествует окончательной версии программного обеспечения.
Поэтому, когда WordPress говорит, что версию 5.6 следует рассматривать как «бета-совместимую», это означает, что могут быть ошибки и ошибки, которые еще не были обнаружены.
Поскольку темы и плагины еще могут быть несовместимы с PHP 8, вероятно, будет разумным не обновлять их до тех пор, пока все плагины и темы не будут проверены на совместимость с PHP 8.
Но даже после того, как темы и плагины станут совместимыми с PHP 8, все равно будет разумно подождать еще как минимум несколько месяцев для обновления.
Причина в том, что PHP 8 — это серьезное обновление. Хотя темы и плагины могут считаться совместимыми с PHP 8, почти неизбежно обнаружение ошибок и других проблем в темах и плагинах, совместимых с PHP 8, которые установлены на сайте.
Сможет ли обновление до PHP 8 сломать сайты WordPress?
Многие старые функции PHP из 7.x удалены из PHP 8, а это означает, что темы и плагины, которые все еще их используют, не работают в PHP 8.
Wordfence недавно подсчитал, что только для одной из функций в настоящее время установлено более 5 500 плагинов на миллионах сайтов. Хотя в некоторых случаях эти функции используются для обратной совместимости, это не так для всех из них.
Мы определили, что create_function все еще используется в более чем 5 500 плагинах WordPress, включая чрезвычайно популярные плагины с миллионами установок. В некоторых случаях использование этих устаревших функций может быть предназначено для обратной совместимости со старыми версиями PHP.
Однако многие плагины потребуют обширного рефакторинга по мере того, как PHP 8 становится все более популярным.
Yoast недавно опубликовал исследование о готовности плагинов и тем к PHP 8 в экосистеме WordPress.
Критические изменения в PHP 8
В разделе своего отчета, посвященном тестированию плагинов и тем, Yoast заключил :
Лишь небольшой процент доступных плагинов, наиболее популярных и профессионально разработанных, имеют автоматизированные тесты. Это вызывает беспокойство, так как в целом на среднем сайте WordPress работает от 19 до 20 плагинов.
… Однако, скорее всего, плагины / темы, которые имеют тесты, являются теми, где можно ожидать наименьшее количество проблем PHP 8.0, поскольку они используют модель профессионального развития.
Гораздо больше поводов для беспокойства вызывает множество плагинов и тем без тестов, поскольку они с большей вероятностью будут проблематичными при запуске на PHP 8.
Отчет Yoast:
«PHP 8 будет содержать много критических изменений».
«Критические изменения» — это ссылка на изменения, которые приводят к ошибке, когда тема или плагин использует код, который больше не поддерживается в PHP 8.
PHP 8 и WordPress
PHP 8 представляет собой важный шаг вперед, особенно для пользователей WordPress. Одно из преимуществ — повышенная безопасность.
Руководство WordPress относительно обновления до PHP 8 требует осторожности:
«… Настоятельно рекомендуется тщательно протестировать свой сайт перед обновлением до PHP 8.»
Тот факт, что сам WordPress называет WordPress 5.6 «бета-совместимым» с PHP 8, говорит вам все, что вам нужно знать о том, следует ли вам обновляться до PHP 8 или нет.
А на хрена вообще обновлять Вордпресс или даже плагины? Если работает, значит работает. Снимаем галочки авто обновлений везде и всё. А насчет взлома… Ну, такое… ну хз. Если у тебя магазин, казино или еще что-то серьезное, то ты сам там не ковыряешься. А если это блог, то нах ты там кому нужен)) Даже если ты там курсы продаешь, вряд ли кто будет взламывать твой сайт. Многие авторитетные форумы ты видел, какой вид имеют)) Их вообще еще во времена динозавров обновляли, судя по смайликам, дизайну и прочим ништякам)))
Заражаются сайты вирусами, когда не обновляется WP, например тоже не обновлял, все сайты заражены вирусами WP.PhotoGallery.2.CVE и WP.Core.5.4.2.CVE. Чтобы вылечить, нужно обновить WP. также пароли поменять..
Какой смысл создавать класс для описания enum, если можно просто использовать константы класса? Ну как бы типизация и ограничение набора значений В том и смысл enum. Проблема не в том, что бы передать какое-то значение из enum, а в том что бы проверить, что это значение принадлежит именно этому enum, а не какому-то другому. Смысл в том, что бы быть уверенным, что тебе не подсунули значение из другого enum с тем же значением, что и в enum который ты ожидаешь. И соответственно, в подобных местах изменение значения одного из enum приведет к ошибке в дальнейшем.
Да вот и я думаю, ну накуй это! только что мощно попал, после обновы вордпресса слетело все к чёрту, только меню на сайте осталось, просил помощи у хостинг компании, хотя это не их проблема, но помогли! ну пришлось все перенастраивать ПОСЛЕДНИЙ раз обновлял! накуй это! весь день потерял!
Все, что косается идеальной понятности и красоты кода должно ложится на плечи IDE, а не в парсер языка. Если скрестить обычный код и графические блоки в IDE таким образом, чтоб кто либо мог выйти из кода и увидеть графический блок с описанием что именно происходит в виде анотации и все эти блоки соединены, подписаны, имеют вложенности, джампы, то программистам не нужно будет писать код по красоте специально вложивая абсолютно все в классы, если очень простые вещи можно разместить в функцию. Тут даже новичок откроет такой проект и ему будет все понятно. Можно даже совмещать разные языки, да хоть на асемблере вставки делайте, но вот это воспитание как проводит сегодня Пайтон в виде отступов никак проблему не решает. Никак проблему не решают стрелочные функции. Даже промисы ничем не помогут если обрабатывать успех и ошибку. Будет все тоже большое вложение и то же лохматое дерево рости, но вот только растет много мусора, растет порог входа новачкам и язык уже не язык.
Мне нравится PHP и в свое время на него переходил с Perl. Язык сильно развился с тех пор