
PHPの依存関係マネージャーであるComposerは約8年前にリリースされ、本日、新しいバージョン2.0が公開されました。Composerは、長年にわたって多くの新機能を受け取り、PHP標準に対応してきました。2番目のバージョンは古いプロジェクトと互換性がありますが、いくつかの優れた新機能が追加されます。この記事では、それらについて詳しく説明します。
加速と最適化
このリリースでは、パフォーマンスが向上しています。現在、すでにインストールされているパッケージは考慮されていないため、更新ははるかに高速です。また、メモリとプロセッサの処理も改善されました。
インストールチームはよりスマートになりました。これで、すべてのパッケージがインストールされていることを確認するまで、ベンダーフォルダーは変更されません。これにより、プロセス中にエラーが発生した場合にそれらを削除する時間を無駄にすることがなくなります。
私にとって最高の機能の1つは並列読み込みです。これはすぐにサポートされるようになり、これを機能させるためにhirak / prestissimoなどの追加パッケージをインストールする必要はありません。

オフラインサポート
Composer . , Composer install/update .
, COMPOSER_DISABLE_NETWORK=1 :
COMPOSER_DISABLE_NETWORK=1 composer install. , .:
https://repo.packagist.org could not be fully loaded (Network disabled, request canceled: https://repo.packagist.org/packages.json), package information was loaded from the local cache and may be out of date, , :
The required git reference for gabrielanhaia/laravel-circuit-breaker is not in cache and network is disabled, aborting--dry-run “require” “remove”
(composer update --dry-run. , , , vendor.
Composer 2.* composer require composer remove
root
root , .
, , :
Do not run Composer as root/super user! See https://getcomposer.org/root for detailsComposer 2.* :
https://getcomposer.org/root for details
Continue as root/super user [yes]? , . , --no-interaction
composer install --no-interaction, . Composer 1.0 / . , ( ).
( ). , , packagist, .
, composer 2.x, . Composer 1.x , , , :
{
"repositories": [
{
"type": "composer",
"url": "https://example.org",
"canonical": false
}
]
}, , , , , .
, foo/bar some-vendor/ composer .:
{
"repositories": [
{
"type": "composer",
"url": "https://example.org",
"only": ["foo/bar", "some-vendor/*"]
}
]
} toy/package , , , .
{
"repositories": [
{
"type": "composer",
"url": "https://example.org",
"exclude": ["toy/package"]
}
]
} only, exclude , (*), .\
- - , : composer install --ignore-platform-req php
PHPまたは特定のバージョンの要件をスキップします。すべての要件を無視する場合は、以前のバージョンですでに使用可能なコマンドを使用する必要があります --ignore-platform-reqs
その他の更新
その使いやすさと品質を改善した多くの新しい小さな機能とバグ修正があります。それらについて詳しく知りたい場合は、Githubリリースノートを確認してください。