Intereting Posts
Создание фиксированных размеров изображений для разных страниц, исключение размеров при загрузке Разрешенный размер памяти 33554432 байт исчерпан (пытался выделить 9967617 байт) в … \ wp-includes \ functions.php Как указать URLS для пользовательских сообщений и таксономий Стол для экранов Media & Plugin Постоянная ссылка: пользовательский тип сообщения -> пользовательская таксономия -> сообщение Добавление ссылок на страницы, которые автоматически конвертируются в красивые постоянные ссылки? Предварительный просмотр черновика пользовательского типа начинается с 404 Возможно ли иметь тему, которая использует только одну страницу? Хранение контента в пользовательской таксономии Ошибка PHP is_embed Как запросить в течение недели с помощью key => value Обозначение аргумента WP_Query? Как увидеть все в get_option ()? Обратите внимание, что при расширении WP_List_Table Динамически переопределить Fancy Title Как достичь определенной страницы (URL), доступной определенным пользователям

Зачем включать файл 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 , то мы, конечно, нуждаемся в нем.