Несколько дней назад анонсирован запуск новой версии 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.
- Новые события были добавлены перед операциями, выполнением, созданием предварительной группы и файлом после загрузки.
- Добавлено большое количество новых флагов.
Наконец, если вам интересно узнать больше об этой новой версии, вы можете ознакомиться с подробностями По следующей ссылке.
С другой стороны, если вы хотите ознакомиться с документацией, вы можете это сделать. по этой ссылке.