Сегодня команда проверки плагинов WordPress напомнила о том, что, по их словам, является давним неписаным правилом: фреймворки не разрешены в официальном каталоге. В посте, озаглавленном « Пожалуйста, не отправляйте фреймворки », Мика Эпштейн изложил причину этого правила:
В настоящее время мы не принимаем фреймворки, так как считаем, что фреймворки, шаблоны и библиотеки не подходят для каталога плагинов. Мы требуем, чтобы плагины были полезны сами по себе (даже если они были всего лишь порталом для внешней службы). И хотя у фреймворков и библиотек есть много преимуществ, без поддержки зависимостей плагинов в ядре или каталоге это становится еще одним уровнем хлопот для пользователей.
Пока ядро WordPress не примет способ поддержки зависимостей плагинов, группа проверки плагинов рекомендует, чтобы фреймворки и библиотеки были упакованы с каждым плагином таким образом, чтобы не конфликтовать с другими плагинами/фреймворками/библиотеками.
Совсем недавно проблема была решена с помощью плагина CMB2 , который, по словам Эпштейна, был ошибочно одобрен несколько месяцев назад. CMB2 — это, по сути, библиотека, которая позволяет разработчикам легко создавать метабоксы, настраиваемые поля и формы. Это именно тот плагин, который ранее неписаное правило должно блокировать доступность в официальном каталоге. Эпштейн далее пояснил причины:
Проблема заключается в следующем: наличие фреймворка в виде плагина — плохой опыт для пользователя. Не разработчик. Пользователь. Пользователь понимает: «У меня есть надстройка для WooCommerce, наверное, мне нужен Woo». Они не всегда понимают «У меня есть плагин Slider Joe. Зачем мне нужны расширенные настраиваемые поля?» Кроме того, имея библиотеку в качестве плагина, ответственность за совместимость версий теперь лежит на человеке, который меньше всего понимает ее: на пользователе.
Репозиторий плагинов в настоящее время не является библиотекой или репозиторием фреймворка. Это не предназначено, как диспетчер пакетов NPM или даже Composer, как способ определить, что «нужно» плагину, таким же образом, как разработчику для создания проекта. Репозиторий плагинов, простой и понятный, предназначен для плагинов, которые пользователи сочтут полезными. Плагины, которые добавляют функциональность к WordPress напрямую интерактивным способом.
Путаница заключается в том, что это конкретное правило применялось непоследовательно в течение многих лет и имеет много заметных исключений, включая Redux Framework , CMB2 и, возможно, такие плагины, как Piklist , Titan Framework , Kirki , Options Framework и многие другие. Это типы плагинов, которые на самом деле ничего не делают из коробки, но предназначены для использования разработчиками для создания вещей.
По словам Эпштейна, некоторые из этих плагинов были «устарели» из-за упущений в процессе проверки плагинов, но правило касается новых представлений.
«CMB2 и Redux Framework уходят корнями в прошлое, — сказала она . «Мы больше не пускаем, так как многие плагины включают их в плагины AS. Это беспорядок. Кроме того, CMB2 не должен был быть одобрен, что совсем другое дело. В настоящее время в репозитории не должно быть фреймворков. Период.”
Другой комментатор самого последнего сообщения, который недавно одобрил свой плагин Advanced Term Fields , спросил: «Вы говорите, что лучший способ справиться с этим сценарием — включить родительскую структуру в каждый дочерний плагин, а не предупреждать пользователя о том, что « Для правильной работы этого плагина требуется плагин XXX?»
Эпштейн подтвердил, что именно это и предлагает команда:
В настоящее время да. Это был бы лучший выход. Однако, поскольку ваш плагин одобрен, с нашей стороны несправедливо выдергивать коврик из-под вас. Хотя у вас не очень много пользователей, мы распознаем, когда лох — это мы сами.
У команды проверки плагинов сложная работа, и она работает с ограниченными волонтерскими ресурсами. Однако непоследовательное применение неписаных правил привело к тому, что, как представляется, набор руководящих принципов является произвольным. Одна вещь, которая облегчила бы жизнь как обозревателям, так и разработчикам плагинов, — это если бы ядро WordPress приняло способ управления зависимостями между плагинами. Команда TGM Plugin Activation работает над предложением по функциональному плагину , который мы подробно рассмотрим в следующем посте.