Рубрики
Uncategorized

Расширенное использование команд Composer — Общие команды и ограничения версии

Автор оригинала: 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/”