Composer の共通コマンドとバージョン制約

藏色散人
リリース: 2019-08-21 14:50:18
転載
2325 人が閲覧しました

次の composer 使用法チュートリアル のコラムでは、一般的に使用されるパッケージ管理コマンドと、パッケージのバージョンを制限する方法について説明します。困っている友人の役に立てば幸いです。

Composer の共通コマンドとバージョン制約

一般的なコマンド

require コマンド

Composer チュートリアル」 」では、install コマンドを使用して依存関係をインストールする方法を簡単に紹介しました。 install コマンドに加えて、require コマンドを使用して、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 は、まず適切なバージョンを見つけてから、composer.json を更新します。 monolog/monolog パッケージの関連情報を require に追加し、インストール用に関連する依存関係をダウンロードし、最後に、composer.lock ファイルを更新して、PHP 自動読み込みファイルを生成します。

update コマンド

update コマンドを使用すると、プロジェクト内のすべてのパッケージ、または特定の指定したパッケージを更新できます。

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
ログイン後にコピー

パッケージがアップグレードできるバージョンはバージョン制約によって制限され、パッケージは制約範囲を超えたバージョンにはアップグレードされないことに注意してください。たとえば、composer.json 内のパッケージのバージョン制約が ^1.10 で、最新バージョンが 2.0 であるとします。この場合、update コマンドはパッケージをバージョン 2.0 にアップグレードできず、バージョン 1.x にのみアップグレードできます。バージョンの制約については、以下の概要を参照してください。

remove コマンド

パッケージとその依存関係を削除するには、remove コマンドを使用します (依存関係が他のパッケージで使用されていない場合):

$ 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
ログイン後にコピー

search コマンド

検索コマンドを使用してパッケージを検索します:

$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
 
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog
ログイン後にコピー

show コマンド

show コマンドを使用してリストします。プロジェクトに現在インストールされているパッケージに関する情報を取得します:

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog
ログイン後にコピー

上記は、一般的に使用されるコマンドの概要です。

バージョンの制約

前述したように、ダウンロードするパッケージのバージョンを指定できます。たとえば、monolog のバージョン 1.19 をダウンロードしたいとします。目標を達成するには、composer.json ファイル:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}
ログイン後にコピー

を使用して install コマンドを実行するか、require コマンド:

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19
ログイン後にコピー

を使用します。上記のように特定のバージョンを指定することに加えて、バージョンを指定するさまざまな制約を渡すこともできます。

基本的な制約

正確なバージョン

特定のバージョンを指定して、このバージョンのみをインストールできることを Composer に伝えることができます。 。ただし、他の依存関係に他のバージョンが必要な場合、パッケージのインストールまたは更新は最終的に失敗して終了します。

例: 1.0.2

スコープ

比較演算子を使用してパッケージのスコープを指定できます。これらの演算子には、>、>=、<、<=、!= が含まれます。

複数の範囲を定義したり、スペースまたはカンマを使用して論理 AND を示したり、二重縦棒 || を使用して論理 OR を示したりできます。 AND の優先順位は or よりも高くなります。

無制限の範囲を使用すると、予期しないバージョンがインストールされ、下位互換性が失われる可能性があることに注意してください。ハイフン演算子を使用することをお勧めします。

例:

>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2
ログイン後にコピー

範囲 (ハイフンを使用)

ハイフンで囲まれた範囲は、含まれるバージョンの範囲を示します。つまり、境界線が存在する必要があります。ハイフンの左側は >= バージョンを示しますが、ハイフンの右側の状況はもう少し複雑です。右側のバージョンが完全なバージョン番号ではない場合は、ワイルドカード文字を使用して補完されます。たとえば、1.0 - 2.0 は >=1.0.0 <2.1 (2.0 は 2.0.* と同等) に相当し、1.0.0 - 2.1.0 は >=1.0.0 <=2.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 として扱われ、追加できるのはマイナー バージョンのみであり、メジャー バージョンは追加できません。

# 折り数

#

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。例如,^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或者-stable。例如:

Composer の共通コマンドとバージョン制約

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。

minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
ログイン後にコピー

以上是版本约束的介绍。

以上がComposer の共通コマンドとバージョン制約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cuiqingcai
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート