Композитор, администратор для установки зависимостей в проектах PHP

Несколько дней назад анонсирован запуск новой версии Composer 2.0, который является администратором для установки зависимостей в проектах PHP.

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

Доступные для установки библиотеки находятся в репозитории Packagist, который содержит более 287 тысяч пакетов.

О композиторе

Composer позиционируется как система установки зависимостей разработан с помощью менеджеров пакетов npm и bundler в виду в сообществах Node.js и Ruby.

Система управляет пакетами по отношению к конкретным проектам и предназначен для установки зависимостей в локальные каталоги проекта (как вариант, существует также глобальный режим установки для всей системы).

По умолчанию предлагается стабильная установка библиотеки, но также можно использовать экспериментальные обновления (альфа / бета) и моментальные снимки (моментальные снимки кодовой базы разработки), которые полезны для организации тестовых сборок в системах непрерывной интеграции.

Код Composer написан на PHP и распространяется под лицензией MIT.

О новой версии Composer 2.0

В новой версии была произведена значительная оптимизация производительности и потребление памяти было уменьшено. Многое было переработано, от протокола до вызова packagist.org вплоть до методов определения зависимостей.

Загрузка предоставляется в виде различных потоков метаданных и zip-файлов, а также реализован режим параллельной установки пакетов. В код добавлены оптимизации для расчетов. Благодаря загрузке только метаданных пакета операции запроса и / или удаления и частичные обновления значительно ускоряются. В некоторых проектах наблюдается ускорение до 50%.

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

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

По умолчанию, добавлен дополнительный этап верификации платформы во время выполнения при инициализации vendor / autoload.php, который убедитесь, что версия и расширения PHP used соответствуют версиям, поддерживаемым в зависимостях. Если есть несоответствие, отображается ошибка.

Проверка выполняется с помощью нового класса Composer \ InstalledVersions, который загружается для каждого проекта, чтобы определить, какие пакеты и версии доступны в проекте.

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

Чтобы временно ограничить версии во время обновления, используйте конструкцию «Поставщик обновления Composer / пакет: 1.0. * ", Что не изменит содержимое блока в" composer.json "и не пометит заблокированный файл как устаревший.

Из других изменений, которые выделяются в этой новой версии:

  • Добавлена ​​поддержка ограниченных по времени частичных обновлений, которые можно использовать, когда вам нужно временно обновить или откатить версию пакета, чтобы протестировать или дождаться исправления ошибки. Реализовано автоматическое удаление пакетов, которые больше не нужны.
  • В репозиторий добавлены только новые опции, exclude и canonical.
  • Новые события были добавлены перед операциями, выполнением, созданием предварительной группы и файлом после загрузки.
  • Добавлено большое количество новых флагов.

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

С другой стороны, если вы хотите ознакомиться с документацией, вы можете это сделать. по этой ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.