Автор оригинала: David Wong.
В этой статье рассматриваются некоторые общие команды управления пакетами и ограничения версий пакетов.
Часто используемые команды
Требуется команда
Использование было кратко описано в разделе “Быстрый запуск Composer” установка Зависит от способа установки команд. за исключением установки Команды, мы также можем использовать требовать Команда быстро устанавливает зависимость без необходимости вручную устанавливать ее в composer .json Добавление информации о зависимостях:
$ composer require monolog/monolog
Using version ^1.19 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing psr/log (1.0.0)
Downloading: 100%
- Installing monolog/monolog (1.19.0)
Downloading: 100%
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
......
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
Writing lock file
Generating autoload filesКомпозитор находит нужную версию и обновляет ее composer.json Документ в требовать Затем добавьте монолог/монолог Информацию, связанную с пакетом, затем загрузите соответствующие зависимости для установки и, наконец, обновите composer.заблокируйте Файл и создайте файл автоматической загрузки PHP.
Команда обновления
Команды adopt update могут обновлять все пакеты в проекте или указывать определенные пакеты.
# Update all dependencies $ composer update # Update the specified package $ composer update monolog/monolog # Update specified multiple packages $ composer update monolog/monolog symfony/dependency-injection # You can also match packages with wildcards $ composer update monolog/monolog symfony/*
Следует отметить, что версии, которые могут обновляться пакетами, подвержены ограничениям версий, и пакеты не обновляются за пределами ограниченных версий. Например, если composer.json Ограничения версии для пакетов ^1.10 Последняя версия-2.0. что команды update не могут обновлять пакеты до версии 2.0, только до версии 1.x. Для получения информации об ограничениях версии см. Следующее введение.
Удалить команду
С помощью команды удалить вы можете удалить пакет и его зависимости (в случаях, когда зависимости не используются другими пакетами).:
$ composer remove monolog/monolog Loading composer repositories with package information Updating dependencies (including require-dev) - Removing monolog/monolog (1.19.0) - Removing psr/log (1.0.0) Writing lock file Generating autoload files
Команда поиска
Используйте поиск Команды для поиска пакетов:
$ composer search monolog monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services # If you just want to match names, you can use the -- only-name option $ composer search --only-name monolog
Показать команду
С помощью команд показать можно вывести информацию о пакетах, установленных в данный момент в проекте:
# List all installed packages $ composer show # You can filter through wildcards $ composer show monolog/* # Display information about a specific package $ composer show monolog/monolog
Ограничение версии
Как упоминалось ранее, мы можем указать версию пакета для загрузки. Например, мы хотим загрузить монолог версии 1.19. Мы можем пройти через это. композитор.json Документ:
{
"require": {
"monolog/monolog": "1.19"
}
}Затем запустите установить Или по заказу требуется Приказ служит этой цели:
$ composer require monolog/monolog:1.19 Or $ composer require monolog/monolog=1.19 Or $composer require monolog/monolog 1.19
В дополнение к указанию конкретной версии, как указано выше, мы также можем указать версию с помощью различных ограничений.
Основное ограничение
Точная версия
Вы можете указать конкретную версию и сообщить Composer, что можно установить только эту версию. Но если для других зависимостей требуются другие версии, установка или обновление пакетов в конечном итоге завершится неудачно и завершится.
Пример: 1.0.2
Диапазон
Используя оператор сравнения, вы можете указать область действия пакета. Эти операторы включают в себя: > , >= , < , <= , != 。
Вы можете определить несколько областей и использовать пробелы Запятая или запятая , Представляет логическое И, используя двойные вертикальные линии
Следует отметить, что использование неограниченных диапазонов может привести к установке непредсказуемых версий и подорвать нисходящую совместимость. Рекомендуется использовать оператор метки сгиба.
Пример:
>=1.0>=1.0 <2.0>=1.0 <1.1
Область применения (с использованием дефисов)
Диапазон через дефис указывает диапазон включенных версий, что означает, что должны быть границы. Левая сторона дефиса указывает, что >= Правая сторона дефиса немного сложнее. Если версия справа не является полным номером версии, она будет исправлена с помощью подстановочных знаков. например 1.0 - 2.0 Приравнять к >=1.0.0 <2.1 ( 2.0 Равняется 2,0. * ) и 1.0.0 - 2.1.0 Эквивалентно >= 1.0.0.1.0 。
Пример: 1.0 - 2.0
подстановочный знак
Вы можете использовать подстановочные знаки для определения версии. 1.0. * Сумма составляет >=1.0 <1.1 。
Пример: 1.0. *
Следующий Важный Оператор Версии
Номер волны~
Давайте начнем со следующего примера. ~ Использование оператора: ~1.2 Сумма >=1.2 <2.0.0 И ~1.2.3 Равно >=1.2.3 <1.3.0 。 Для проектов, которые используют семантическое управление версиями в качестве стандарта номера версии, этот подход с ограничением версий очень практичен. например ~1.2 Определите наименьший номер версии, а затем вы сможете обновить любую версию ниже 2.0 без каких-либо проблем, потому что в соответствии с определением версии семантического управления версиями, незначительные обновления версий не должны иметь проблем с совместимостью. Короче говоря, ~ Минимальная версия определена, и последний номер версии версии может быть обновлен (см. Предыдущий пример еще раз, если вы не понимаете).
Пример: ~1.2
Следует отметить, что если ~ Действовать по основному номеру версии, например ~1 Согласно вышесказанному, Composer может установить основную версию после версии 1, но на самом деле это ~1 Будет рассматриваться как ~1.0 Чтобы справиться с этим, можно добавить только небольшую версию, а не основную версию.
Фонетический знак^
^ Поведение оператора тесно связано с семантическим управлением версиями, что позволяет обновлять версии для защиты версий. Например, ^1.2.3 Равно >=1.2.3 <2.0.0 Потому что в версии до 2.0 не должно быть проблем с совместимостью. Для версий до 1.0 это ограничение также учитывает проблемы безопасности, такие как ^0.3 Будет рассматриваться как >=0.3.0 <0.4.0 Лечить.
Пример: ^1.2.3
Стабильность версии
Если вы явно не укажете стабильность версии, Composer будет указан внутренне по умолчанию на основе используемого оператора -dev возможно -стабильный 。 Например:
| 1.2.3 | |
| >1.2 | >1.2.0.0-стабильный |
| <1.3 | < >1.2.0.0-стабильный |
| 1 – 2 | |
| ~1.3 | |
| 1.4.* |
Если вы хотите указать стабильную версию, вы можете добавить суффикс после версии. -стабильная 。
элементы конфигурации с минимальной стабильностью определяют поведение пакета по умолчанию при выборе стабильности при выборе версий. Значение по умолчанию равно стабильный 。 Его значения следующие (отсортированы по стабильности): дев , альфа , бета-версия , RC и стабильный 。 В дополнение к изменению этой конфигурации для изменения поведения по умолчанию мы также можем использовать идентификаторы стабильности (например @stable и @dev ) Чтобы установить версию со стабильностью, отличной от конфигурации по умолчанию. Например:
{
"require": {
"monolog/monolog": "1.0.*@beta",
"acme/foo": "@dev"
}
}Справочные ресурсы
Справочные ресурсы
Справочные ресурсы
Справочные ресурсы
Оригинал: “https://developpaper.com/advanced-use-of-composer-common-commands-and-version-constraints/”