Kwork.ru - услуги фрилансеров от 500 руб.

PHP7 и его совместимость с плагинами WordPress

php7

Если вы читали новости о HHVM, вы знаете, что HHVM произвел настоящую революцию. Он позволяет значительно ускорить выполнение PHP. Вы можете добиться ускорения работы WordPress более чем в 2 раза по сравнению с PHP 5.6. Однако PHP – не единственный фактор, влияющий на скорость работы сайта. Вы можете использовать простой VPS за десять долларов с установленным кэшированием Nginx, и ваш сайт будет выдерживать миллионы хитов в день. С другой стороны, бывают ситуации, когда вы не сможете использовать такие методы.

Блог Миши Рудрастых

Не забывайте о Woocommerce и приложениях, в которых нельзя кэшировать бэкэнд.

В то время как HHVM начал революцию, PHP ее быстро поддержал и развил. Сегодня PHP7 работает медленнее лишь на 10%, но он еще даже не выпущен официально. Я уверен, что разработчики PHP обязательно улучшат скорость его работы в последующих релизах.

Недостатком HHVM всегда была совместимость (не все плагины поддерживали HHVM) и некоторые баги, которые со временем были исправлены. В число таких багов входили утечки памяти (высокое потребление памяти), а также высокое использование процессорных ресурсов в некоторых ситуациях. Я слышал, что многие проблемы были решены в последней версии, и совместимость только улучшилась.

HHVM требует некоторых навыков для своей реализации. Далеко не каждая хостинг-панель (Vesta, Virtualmin, Zpanel и т.д.) применила его на практике. HHVM в основном использовался хостинг-компаниями и сайтами на выделенном VPS. Easyengine сделал возможным использование HHVM для простых пользователей. С другой стороны, супер популярный ServerPilot до сих пор не реализовал HHVM, однако при этом они включили поддержку PHP7 с похожим увеличением скорости.

Одно из главных преимуществ PHP 7 – это практически такая же скорость для WordPress и более простая реализация. Если вы хотите попробовать PHP7, вы можете воспользоваться релиз-кандидатом, который увидел свет не так давно.

Я буду использовать одно из лучших решений среди хостинг-панелей – ServerPilot. Я думаю, что пришла пора для разработчиков протестировать их плагины, особенно сейчас, когда доступны такие прекрасные и доступные ресурсы, как DigitalOcean (взимают почасовую оплату) и ServerPilot (бесплатный).

Совместимость WordPress плагинов с PHP7

Я узнал у друзей, какие плагины они хотели бы видеть совместимыми с PHP7 «из коробки», и составил список из бесплатных и платных плагинов, к которым у меня был доступ. Вот результат:

  • Admin Word Count – Бесплатный
  • AdRotate – Платный и бесплатный
  • Akismet – Бесплатный
  • Awesome Shortcodes For Genesis – Бесплатный
  • Broken Link Checker – Бесплатный
  • CloudFlare – Бесплатный
  • Contact Form 7 – Бесплатный
  • CSSHero – Платный
  • Duplicator – Бесплатный и платный
  • Easy Plugin for AdSense – Бесплатный и платный
  • Easy Social Share Buttons for WordPress – Бесплатный
  • Fanciest Author Box – Платный
  • FEEDZY RSS Feeds by b*web – Бесплатный
  • FFF Cron Manager – Бесплатный
  • Genesis Custom Footer – Бесплатный
  • Genesis Shortcodes – Бесплатный
  • Genesis Simple Sidebars – Бесплатный
  • Genesis Sandbox Featured Content Widget
  • Google Analytics by Yoast – Бесплатный и платный
  • Growmap Anti Spambot Plugin – Бесплатный
  • Hide My WP – Платный
  • Jetpack by WordPress.com – Бесплатный
  • Kraken Image Optimizer – Плагин бесплатный, но сервис платный
  • Leadin – Бесплатный
  • Local Indicator – Бесплатный
  • NextScripts – Платный и бесплатный
  • Optimize Database after Deleting Revisions – Бесплатный
  • OptinMonster – Платный
  • Pretty Link – Платный и бесплатный
  • Redirection – Бесплатный
  • Remove XMLRPC Pingback Ping – Бесплатный
  • Roost Web Push – Бесплатный плагин, но сервис платный
  • RSS with Images – Бесплатный
  • SEO Friendly Images – Бесплатный
  • Shortcodes Ultimate – Бесплатный и платный
  • Simple 301 Redirects – Бесплатный
  • Theme Junkie Custom CSS – Бесплатный
  • ThirstyAffiliates – Бесплатный и платный
  • TinyMCE Advanced – Бесплатный
  • UberMenu 3 – Платный
  • Ultimate Nofollow – Бесплатный
  • UpdraftPlus – Бесплатный и платный
  • WordPress Related Posts – Бесплатный
  • WP Pro Ad System – Платный
  • WP Rich Snippets – Платный
  • WP Rocket – Платный
  • WP Shortcode by MyThemeShop – Бесплатный
  • WP-Mail-SMTP – Бесплатный
  • WP-Optimize – Бесплатный
  • Yoast SEO – Бесплатный и платный
  • Simple Social Icons – Бесплатный

Как только я активировал сайт со всеми этими плагинами на сервере с PHP7, я столкнулся с некоторыми проблемами. Меня приветствовал пустой экран с сообщением об ошибке, которое не давало сайту загрузиться:

Fatal error: ‘break’ not in the ‘loop’ or ‘switch’ context in /itsmdaily/public/wp-content/plugins/social-networks-auto-poster-facebook-twitter-g/inc-cl/fl.php on line 39

Warning: Declaration of tcm_management_table::prepare_items($search) should be compatible with WP_List_Table::prepare_items() in /itsmdaily/public/wp-content/plugins/thin-content-manager/thin-content-manager.php on line 39

Warning: Cannot modify header information – headers already sent by (output started at /itsmdaily/public/wp-content/plugins/thin-content-manager/thin-content-manager.php:39) in /itsmdaily/public/wp-includes/pluggable.php on line 1207

Спустя две минуты я получил четвертую ошибку на сайте:

Fatal error: Uncaught Error: Class ‘GS_Featured_Content’ not found in /itsmdaily/public/wp-includes/widgets.php:591 Stack trace: #0 /itsmdaily/public/wp-includes/widgets.php(720): WP_Widget_Factory->register(‘GS_Featured_Con…’)

PHP 7 и плагины

В данный момент три плагина из списка не работают с PHP7:

  • NextScripts – Последнее обновление было 2 недели назад, но я слышал, что скоро будет выпущена версия 4
  • Thin Content Manager – Последний раз обновлялся два года назад
  • Genesis Featured Content – Последний раз обновлялся год назад

Как вы можете видеть, чем старше плагин, тем выше шанс, что он не будет работать с PHP7. Однако будьте осторожны, даже недавно обновленные плагины могут перестать работать, что показал случай с NextScripts. Обязательно протестируйте их перед тем, как переносить свой сайт на PHP7.

В целом же все будет в порядке. Возможно, один или два плагина перестанут работать. Я уверен, что плагины будут обновлены вскоре после официального выхода PHP7.

Один из плагинов из списка, который привлек мое внимание – это Simple Social Icons от StudioPress.

Автор плагина обновил его еще в начале августа, добавив к нему совместимость с PHP7. Возможно, это было сделано потому, что плагин действительно очень простой. Вот цитата из журнала изменений:

php7-compatible

Если плагины работают и платформа WordPress совместима с PHP7, могу ли я запустить свой сайт на предрелизной версии? Хотелось бы, но…

К сожалению, NewRelic пока не доступен для PHP7. Это означает, что я не смогу выявить серьезные проблемы и даже проблемы, связанные с плагинами, находясь далеко от компьютера. Однако, как только NewRelic станет доступным для PHP7, я тут же перемещу свои сайты на PHP7-дроплет.

Что по поводу плагина X?

Стоит отметить, что и WordPress, и PHP имеют тенденцию повреждать плагины в последних релизах. К примеру, WordPress 4.3 нарушил работу плагина Front-end Editor (в бета-версии).

Если вы привыкли к нему, то, увы, такие вещи тоже случаются. Я помню еще те времена, когда плагин Max Banner PRO (платный) перестал работать с PHP 5.5.

Когда плагин перестал работать, у пользователей было два выхода из такой ситуации. Найти ему замену или использовать версию PHP младше, чем 5.5. Если вы используете плагин, который не работает с последней версией PHP, бесплатный или платный, самое лучшее, что вы можете сделать – это уведомить его автора об этом. Если вам улыбнется удача, автор плагина быстро добавит поддержку новой версии PHP.

Все это приводит нас к одному вопросу: «Как узнать, что плагин, который я использую, будет поддерживаться в будущем?»

Мне кажется, что лучший ответ на этот вопрос – использовать плагины, созданные компаниями с хорошей репутацией (Automattic, StudioPress, MyThemeShop, ElegantThemes и т.д.). Это верно и для платных плагинов, и для бесплатных.

В процессе поиска бесплатных плагинов в каталоге WordPress всегда обращайте внимание на время последнего обновления и количество установок/загрузок. Все это является хорошим индикатором «здоровья» плагина. Возможно, однажды WordPress удалит неподдерживаемые плагины из каталога.

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

Вторая проблема, с которой вы можете столкнуться в результате того, что вы используете устаревший плагин – это приведение всех вещей в порядок. Представьте себе, что вы используете плагин для шорткодов. Вы вставили прекрасные объекты в свои записи. У вас примерно 1000 записей. Плагин перестал работать. Вы должны найти замену ему.

И, что самое интересное, вы теперь должны заменить 1000 шорткодов…

Релиз PHP7 должен быть выпущен в середине октября 2015.

Источник: http://www.itsmdaily.com

Понравилась статья? Поделиться с друзьями:
Комментарии: 3
  1. Андрей

    WordPress Related Posts – у меня выдает ошибку, но работает. Надеюсь обновят плагин и будет все улажено под php7, а то не хочется откатываться на 5.5

  2. Айк

    Привет !

    А насколько увеличилось скорость сайта в целом ?
    Почувствовали разницу в скорости после перехода на php 7.2 ?

    Хочу понять, стоит ли обновлять версию php na 7.2 ?

    1. Дмитрий (автор)

      Приветствую! Пока не обновляли. Скорость должна, скорее всего, вырасти, если хостинг поддерживает версию.

Добавить комментарий для Айк Отменить ответ

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