Использование composer для управления зависимостями в plugindevelopment
Я новичок в разработке плагинов wordpress. Обычно я использовал бы composer для добавления сторонних библиотек в свой код, но я не смог найти ни одного плагина wordpress на github, который использовал бы composer для этого.
Я читал о wpackagist.org и способ, которым composer можно использовать для управления зависимостями между плагинами WordPress. В этом случае будет один главный композитор.json со всей информацией.
Но что, если я захочу разработать один плагин с помощью composer? Стал бы я просто включить автоматическую загрузку в "корневой файл плагина"? Но что, если другие плагины будут делать то же самое и будут использовать собственные загрузчики, а в худшем случае будут иметь одинаковые зависимости в разных версиях?
Существует ли лучшая практика интеграции lib-зависимостей в плагины wordpress?
1 answers
Все еще очень мало плагинов/тем WP, которые разрабатываются в первую очередь композитором. Вы можете взглянуть на Тематическое исследование Laps (одно из моих) для практического примера.
По сути, если вы планируете публичное распространение плагина, вам нужно позаботиться об обоих случаях - запустить его как часть стека композитора всего сайта и запустить его автономно.
На практике это обычно означает поиск и условную загрузку автозагрузчика, если он присутствует (с остальными материалами поставщика) внутри каталога плагина. Примерно так:
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) )
require __DIR__ . '/vendor/autoload.php';
Это не решает проблему множественного плагина с дублированными зависимостями, однако это не хуже, чем то же самое, что происходит без участия композитора. Проще говоря, WordPress не имеет встроенного управления зависимостями, поэтому единственный способ надежно справиться с этим - внедрить его извне, например, управлять всем стеком WordPress с помощью Composer.