ホームページ  >  記事  >  開発ツール  >  Composer の共通コマンドとバージョン制約

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

藏色散人
藏色散人転載
2019-08-20 14:36:092302ブラウズ

次の 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 =1.0.0

例: 1.0 - 2.0

ワイルドカード

ワイルドカードを使用してバージョンを定義できます。 1.0.* は >=1.0

例: 1.0.*

次のメジャー バージョンの演算子

チルダ~

## まず、 ~1.2 は >=1.2 =1.2.3 例: ~1.2

上記のステートメントに従って ~ が ~1 などのメジャー バージョン番号に作用する場合、Composer はバージョン 1 以降のメジャー バージョンをインストールできることに注意してください。しかし実際には、~1 は ~1.0 として扱われ、追加できるのはマイナー バージョンのみであり、メジャー バージョンは追加できません。

# 折り数

#

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。例如,^1.2.3相当于>=1.2.3 =0.3.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 までご連絡ください。