Использование composer для управления зависимостями в plugindevelopment


Я новичок в разработке плагинов wordpress. Обычно я использовал бы composer для добавления сторонних библиотек в свой код, но я не смог найти ни одного плагина wordpress на github, который использовал бы composer для этого.

Я читал о wpackagist.org и способ, которым composer можно использовать для управления зависимостями между плагинами WordPress. В этом случае будет один главный композитор.json со всей информацией.

Но что, если я захочу разработать один плагин с помощью composer? Стал бы я просто включить автоматическую загрузку в "корневой файл плагина"? Но что, если другие плагины будут делать то же самое и будут использовать собственные загрузчики, а в худшем случае будут иметь одинаковые зависимости в разных версиях?

Существует ли лучшая практика интеграции lib-зависимостей в плагины wordpress?

Author: fuxia, 2013-12-21

1 answers

Все еще очень мало плагинов/тем WP, которые разрабатываются в первую очередь композитором. Вы можете взглянуть на Тематическое исследование Laps (одно из моих) для практического примера.

По сути, если вы планируете публичное распространение плагина, вам нужно позаботиться об обоих случаях - запустить его как часть стека композитора всего сайта и запустить его автономно.

На практике это обычно означает поиск и условную загрузку автозагрузчика, если он присутствует (с остальными материалами поставщика) внутри каталога плагина. Примерно так:

if ( file_exists( __DIR__ . '/vendor/autoload.php' ) )
    require __DIR__ . '/vendor/autoload.php';

Это не решает проблему множественного плагина с дублированными зависимостями, однако это не хуже, чем то же самое, что происходит без участия композитора. Проще говоря, WordPress не имеет встроенного управления зависимостями, поэтому единственный способ надежно справиться с этим - внедрить его извне, например, управлять всем стеком WordPress с помощью Composer.

 8
Author: Rarst, 2013-12-21 12:01:11