WordPress – динозавр. Если вы программист PHP и за последние 10 лет имели возможность работать вне WordPress , вероятно, есть одна, две или несколько десятков вещей, которые расстраивают вас, когда вы снова погружаетесь в 16-летнюю кодовую базу проекта. В то время как WordPress дарит программистам на JavaScript новейшие и лучшие возможности, те, кто занимается PHP, могут чувствовать себя обделенными.
У устаревшего кода WordPress есть веская причина: он обратно совместим с более чем десятилетием сторонних расширений. Кроме того, старый код не обязательно означает плохой код. Если не сломалось – ну вы знаете, как обстоят дела в остальном.
В прошлом году WordPress повысил минимальные требования для запуска программного обеспечения до PHP 5.6 или новее. Многие разработчики приветствовали поддержку таких функций, как синтаксис коротких массивов, пространство имен и оператор распространения. Другие хотели перейти на PHP 7+, но PHP 5.6 был хорошей ступенькой к более современному коду PHP.
Это изменение вызвало новые вопросы. Когда ядро WordPress начнет использовать новые функции? Каким стандартам кодирования должен следовать проект?
WordPress 5.3 использовал новый оператор распространения , который очистил и упростил несколько функций. Он показал готовность ядра обновить некоторый устаревший код, избегая проблем с обратной совместимостью.
Обновленный набор стандартов
Чтобы начать использовать современные функции PHP в WordPress, стандарты кодирования платформы должны развиваться. 20 марта Джульетта Рейндерс Фолмер предложила обширный набор рекомендаций . Предложение представляет собой черновик, и его необходимо будет доработать на основе отзывов разработчиков и основных участников.
«Хотя может пройти еще некоторое время, прежде чем некоторые из этих функций будут фактически приняты для использования в WordPress Core», – написал Фолмер, «предварительное определение стандартов кодирования позволит создать согласованную базу кода, когда они будут приняты, и позволит плагины и темы, которые не обязательно привязаны к минимуму PHP 5.6, чтобы обеспечить согласованность своего кода, когда они уже начинают использовать более современный PHP ».
Предлагаемые стандарты разбиты на следующие темы:
- Объявления пространств имен
use
Операторы импорта- Черты и интерфейсы
- Объявления типов
- Объявление заявлений / строгая типизация
::class
постоянная- Операторы
- Дополнительные новые правила, касающиеся различных предметов
Любой код, который идет непосредственно в WordPress, должен соответствовать стандартам кодирования проекта. Настоятельно рекомендуется, чтобы разработчики плагинов и тем использовали одни и те же стандарты, но это не является требованием для включения в официальные каталоги плагинов и тем. Стандарты кодирования в экосистеме упрощают для одного разработчика получение кода от других разработчиков без необходимости изучать уникальные стили между расширениями.
В целом обновление выглядит солидно. В этом предложении есть что нравится, и это было бы долгожданным дополнением к набору руководящих принципов, которые крайне нуждались в обновлении.
Одна из моих самых больших проблем связана с именованием файлов. Проект WordPress должен отказаться от использования class-, interface-и trait-префиксы из PHP файлов. Вместо этого мы должны использовать эту возможность, чтобы принять соглашение об именах стандарта автозагрузки PSR-4 . В этом стандарте имя файла точно соответствует имени класса, интерфейса или признака. По крайней мере, имена файлов с префиксом не должны быть рекомендацией для разработчиков WordPress во всем мире. Сохраните его для ядра, если это необходимо по традиции, но не рекомендуйте широко использовать систему, которая годами отстает от современного PHP.
Я также хотел бы, чтобы WordPress использовал регистр Паскаля (т. е. ExampleProject) Вместо заглавных букв (т. е. Example_Project) Для пространств имен. Однако, учитывая традицию верблюжьей шапки в названиях классов, я не вижу, чтобы это изменилось. Это немного придирчиво, но кажется неуместным по сравнению с другими, более современными проектами PHP.
Самое большое, что может сделать сообщество разработчиков WordPress прямо сейчас, – это обсудить предложение и оставить отзыв. Большая часть работы сделана. Сообщество должно способствовать его развитию.