Intereting Posts
500 при обновлении опции плагина woocommerce_before_calculate_totals в woocommerce 3.0 add_page_menu, чтобы сделать ярлык для виджетов Сделайте комментарии группы администратора WordPress, используя $ allowedtags Как получить количество страниц при копировании комментариев? Можно ли изменить пул по умолчанию? Стандарты кодирования сэндвича Могу ли я помешать авторам изменить шрифт в своем сообщении? Почему временные функции показывают недействительный часовой пояс при использовании формата времени «c»? Как получить доступ к телу запроса API WP в пользовательском маршруте? Отключенные плагины – это дыры в безопасности – слухи или реальность? Как добавить основной style.css в мой index.php? Что такое действие или фильтр для добавления информации в Permalink в Edit Post / Page? Ограничить виджет для определенной зарегистрированной боковой панели Интегрировать API-интерфейс фидов продуктов в Woocommerce

Зачем включать файл composer.json с моим плагином?

В чем преимущество явного включения файла composer.json в мой плагин, если потенциальные пользователи моего плагина уже могут получить его как пакет через WPackagist?

Solutions Collecting From Web of "Зачем включать файл composer.json с моим плагином?"

TL; DR

Если вы хотите поддерживать Composer, то лучше добавить composer.json затем просто позволить WPackagist создать пакет для вас.

Есть несколько причин, никто не очень важен, но, учитывая, что для создания composer.json не требуется много усилий, это, вероятно, стоит того.

Преимущества composer.json

Ниже приведен неисчерпывающий список преимуществ использования composer.json .

Поддерживаемые разработчики

Когда вам требуется пакет, Composer просматривает репозитории, чтобы найти этот конкретный пакет. Packagist и WPackagist – 2 репозитория.

Разница в том, что Packagist всегда разбирается с Composer, а WPackagist должен быть добавлен вручную в проект composer.json .

Чтобы потребовать плагин на Packagist, вам понадобится одна строка в composer.json :

 "require": { "your-name/your-plugin-name":"1.*", } 

Чтобы потребовать плагин на WPackagist, вам также нужно настроить репозитории:

 "repositories":[ { "type":"composer", "url":"http://wpackagist.org" } ], "require": { "your-name/your-plugin-name":"1.*", } 

Это также актуально при использовании командной строки, см.

 composer create-project your-name/your-plugin-name 

В.С.

 composer create-project wpackagist-plugin/your-plugin-name --repository-url=http://wpackagist.org 

Представление

Когда в проекте содержится больше репозиториев, Composer пинит их все, чтобы найти информацию о пакетах.

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

конфигурация

Из преимуществ наличия composer.json является то, что вы можете настроить способ, которым Composer будет извлекать ваш плагин.

Например, вы можете использовать имя пакета в name , вместо того, чтобы позволить WPackagist создать имя пакета для вас.

Кроме того, есть много настроек, которые могут быть выполнены в composer.json , всего несколько примеров:

  • вы можете использовать настройку branch-alias для улучшения совместимости версии разработки плагина
  • даже если у вас нет зависимостей, вы можете использовать параметр require для установки минимальной версии PHP,
  • настройка conflict позволяет вам четко сообщать о конфликтующих пакетах …

и так далее.

Знание владения

Когда вам требуется плагин из WPackagist, «поставщик» часть имени пакета всегда является wpackagist-plugin .

Поэтому люди потребуют от вас плагина:

 "require": { "wpackagist-plugin/your-plugin-name":"1.*", } 

Если вы установите плагин на packagist, вы можете использовать собственный префикс поставщика, и я думаю, что лучше для маркетинга:

 "require": { "your-name/your-plugin-name":"1.*", } 

Автозагрузка

Композитор обеспечивает автозагрузку для пакетов. Если вы решите использовать Composer, вы можете воспользоваться им. Однако, учитывая, что вы отправляете свой плагин на официальное репо, вам нужно учитывать, что большинство вашего пользователя, вероятно, установят ваш плагин, не используя Composer. Это означает, что у вас есть возможности:

  • отправьте папку «vendor» (содержащую автозагрузку) инсайдерской папку вашего плагина в официальном репо
  • использовать пользовательский автозагрузчик или механизм ручной загрузки в случае, если плагин используется без Composer.

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

Поддержка явного композитора

Добавляя composer.json вы сообщаете людям, что вы явно поддерживаете Composer. Например, когда я ищу плагин, найти composer.json в папке с плагинами – большой плюс для меня, поскольку я, как правило, не использую плагины, которые этого не делают.

Кроме того, есть инструменты, которые нацелены на плагин, явно поддерживающий Composer.

Например, у меня есть сценарий, который предотвращает автоматические обновления для плагина / тем, у которых есть composer.json .

Файл composer.json обычно содержит дополнительную информацию, недоступную в readme.txt . Таким образом, он может просто служить файлом readme для зависимостей вашего плагина.

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

Например, для плагинов aborged .org было бы удобно иметь этот файл для тех, кто хотел бы его разветвить, обновить и расширить.

Если мы хотим зарегистрировать наш плагин на packagist.org , то мы, конечно, нуждаемся в нем.