Команда PIE рада объявить о выпуске серии PHP Installer for Extensions 1.5, работа над которой велась около пяти месяцев. Была проделана значительная работа по внутренним улучшениям, что позволило нам реализовать несколько долгожданных функций для этого инструмента. Давайте рассмотрим некоторые из этих новинок!
Установка нескольких расширений
Теперь вы можете устанавливать несколько расширений одновременно, например:
$ pie install php-amqp/php-amqp:^2.2 girgias/csv
Это полезно при настройке Docker-образов. Опции конфигурации по-прежнему можно передавать, и они будут автоматически отфильтрованы в соответствующие опции ./configure для каждого расширения.
Внедрение выбора пакетов с помощью --select=... для автоматической установки
Когда вы запускаете pie install внутри PHP-проекта, в предыдущих версиях PIE вы могли использовать --allow-non-interactive-project-install для автоматического выбора пакетов для отсутствующих расширений. Однако этот подход был рискованным, так как не было гарантий, какой именно пакет будет выбран для отсутствующего расширения. Чтобы устранить этот риск, теперь при неинтерактивной/автоматической установке необходимо явно указывать выбор пакетов:
$ pie install \
--select=example_pie_extension=asgrim/example-pie-extension \
--select=redis=phpredis/phpredis
Это позволяет вам осознанно и явно принимать решения о том, какой пакет использовать для любых отсутствующих расширений.
Обновление всех ваших расширений PIE
$ pie upgrade
Это всё, что нужно теперь для автоматического обновления всех ваших расширений PIE в рамках ограничений, с которыми вы изначально устанавливали каждое расширение. Например:
- вы устанавливаете
foo/bar:^1.1с помощью PIE, и устанавливается последняя версия 1.1.5 - позже для расширения
foo/barвыходит новая версия 1.2.0 - вы запускаете
pie upgrade, иfoo/barобновляется до 1.2.0, так как это соответствует исходному ограничению^1.1. - впоследствии выходит совершенно новая версия
foo/bar2.0.0 - когда вы запускаете
pie upgrade,foo/barне будет обновлено, так как 2.0.0 не входит в ограничение^1.1.
Масштабное обновление библиотеки Attestation
Некоторое время PIE использовал фреймворк Sigstore для проверки подлинности самого PIE. Основным механизмом для этого был вызов CLI-инструмента gh , если он доступен, а если нет — переход к базовой реализации проверки Sigstore. После большой работы мы смогли реализовать большую часть набора тестов на соответствие Sigstore, достигнув 131 пройденного теста, 5 пропущенных (поскольку библиотека предназначена только для проверки) и 4 ожидаемых сбоев. Это была огромная задача, и мы считаем, что это самая полная PHP-реализация набора для проверки Sigstore. Теперь PIE может использовать эту более обширную проверку при выполнении обновлений. Кроме того, библиотека больше не привязана жестко к аттестациям GitHub и доверенному корневому сертификату, хотя оба они включены «из коробки» для удобства. Эта библиотека с открытым исходным кодом доступна всем по лицензии BSD-3-Clause на github.com/ThePHPF/attestation.
Краткий обзор других новых функций...
- Опция
--no-devдляpie installв PHP-проекте, позволяющая пропускать dev-расширения - Вы можете использовать
--suppress-download-url-method, чтобы исключить определенные методы загрузки по URL, даже если расширение их поддерживает. - Новая команда
pie search ...для помощи в поиске пакетов, предоставляющих расширения. - Вы можете оптимистично проверять наличие установленных инструментов сборки с помощью
pie check-build-tools - Поддержка плейсхолдеров для некоторых PECL-расширений, которые полагались на эту функцию
Как всегда, разработка PIE продолжается, и команда The PHP Foundation, работающая над PIE, стремится сделать управление расширениями PHP таким же простым, как пирог (as easy as PIE). Если у вас есть идеи или предложения, пожалуйста, присоединяйтесь к нам в GitHub Discussions, чтобы обсудить их. Если вы обнаружили ошибку, пожалуйста, сообщите о ней в нашем трекере GitHub Issues.
Комментарии (0)
Пока нет комментариев — будьте первым.