3 октября SVN-система WordPress.org была повышена до версии 7.2. Это означает, что авторы плагинов теперь могут использовать новый синтаксис PHP в своих решениях, передаваемых в официальный каталог.
Это должно стать хорошей новостью для разработчиков плагинов, которые используют новый синтаксис PHP. Ранее авторы могли передавать код с новыми PHP-функциями, если в том же файле имелась проверка совместимости. Однако новый синтаксис не поддерживался.
«Проблема заключалась в том, что Linter (ранее привязанный к версии 7.0) не пропускал код через SVN по стандартам 7.1+», – отметила Мика Эпштейн из команды обзора плагинов. – «Поэтому такие вещи, как оператор Spaceship, не проходили в коммите, и вы получали уведомление, что синтаксис неверный. В итоге невозможно было передать в каталог новый код для некоторых плагинов».
Мика Эпштейн впервые открыла тикет для решения этой проблемы 13 месяцев назад, однако, по ее словам, просила она об этом гораздо раньше.
Максимальная версия PHP нигде не указывается в руководствах к плагинам. В техническом плане это является ограничением SVN для WordPress.org. Команда обзора плагинов к данному ограничению не имеет отношения. Однако авторы плагинов могут не знать об этом, пока их код не будет отклонен системой. Затем разработчики уже пишут команде обзора плагинов.
Эта проблема стала более распространенной с момента выхода PHP 7.1, т.е. с 1 декабря 2016 года. «Сначала мы сталкивались с этим раз в год, затем два раза в год, а потом уже каждые несколько месяцев. Сейчас мы получаем такие уведомления от авторов плагинов как минимум раз в месяц».
Потенциальная проблема с блокировкой нового PHP-кода связана с плагинами, которые используют сторонние библиотеки – такие библиотеки нередко имеют патчи безопасности только в более свежих версиях. Однако Мика отметила, что она не знает про какие-либо проблемы безопасности, которые появились бы из-за ограничения версии.
Андрей Савченко (Rarst) вполне резонно напомнил в тикете, что «7.2 был выпущен почти 2 года назад». По его мнению, текущее решение гораздо лучше по сравнению с прошлым ограничением в виде версии 7.0, однако версия 7.2 не должна быть «потолком» для плагинов в репозитории.
PHP 7.3 был выпущен в 16 декабря 2018 года, а PHP 7.4 будет выпущен 28 ноября 2019 года.
«Учитывая весьма слабую кривую принятия PHP, мы получаем следующее: нельзя выпускать плагин на WordPress.org, который будет работать только на 15% сайтов», – отметил Дион Халс. – «Вы даже можете использовать новые функции в PHP, если у вас есть код совместимости; однако новый синтаксис будет запрещен».
Автор плагинов Джош Поллок выразил свою обеспокоенность данной проблемой еще в феврале в Twitter. «Несколько часов назад мне пришлось понизить версию зависимости, поскольку она требовала другую зависимость, которой для работы нужен был PHP 7.1».
«Я считаю, что нам сильно повезло, поскольку не вылезло никаких багов», – рассказал Джош о результатах понижения версии зависимости. – «Не думаю, что я когда-нибудь еще буду использовать SVN. Хватило с меня этого».
«Я полностью согласен с Rarst», – отметил Джош. – «Мы должны разрешить использовать PHP 7 и позволить владельцам плагинов не поддерживать работу своих решений на сайтах с устаревшими версиями PHP». Это отражает мнение и других разработчиков, которые настаивают на том, чтобы WordPress перешел к более новым стандартам или, по крайней мере, позволил бы использовать новый код в плагинах в официальном каталоге.
PHP 7.2 лишится активной поддержки 30 ноября 2019 года и поддержки безопасности 30 ноября 2020.
Источник: wptavern.com