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

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

Aug 20, 2019 pm 02:36 PM
composer

次の 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 Apr 18, 2025 am 11:48 AM

eコマースのWebサイトを開発するとき、私は困難な問題に遭遇しました。ユーザーにパーソナライズされた製品の推奨事項を提供する方法です。当初、私はいくつかの簡単な推奨アルゴリズムを試しましたが、結果は理想的ではなく、ユーザーの満足度も影響を受けました。推奨システムの精度と効率を改善するために、より専門的なソリューションを採用することにしました。最後に、Andres-Montanez/Adcumentations Bundleを介してAndres-Montanez/Bundleをインストールしました。これは、問題を解決しただけでなく、推奨システムのパフォーマンスを大幅に改善しました。次の住所から作曲家を学ぶことができます。

クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 クラフトCMSのキャッシングの問題を解決する:Wiejeben/Craft-Laravel-Mixプラグインの使用 Apr 18, 2025 am 09:24 AM

CraftCMSを使用してWebサイトを開発する場合、特にCSSやJavaScriptファイルを頻繁に更新する場合、リソースファイルのキャッシュ問題が発生することがよくあります。古いバージョンのファイルがブラウザによってキャッシュされ、ユーザーが最新の変更を表示しないようにすることがあります。この問題は、ユーザーエクスペリエンスに影響を与えるだけでなく、開発とデバッグの難しさを高めます。最近、プロジェクトで同様のトラブルに遭遇し、いくつかの調査の後、プラグインWiejeben/Craft-Laravel-Mixが見つかりました。

作曲家との電子メールマーケティングを簡素化する方法:duwa.ioのアプリケーションプラクティス 作曲家との電子メールマーケティングを簡素化する方法:duwa.ioのアプリケーションプラクティス Apr 18, 2025 am 11:27 AM

メールマーケティングキャンペーンを行う際には、HTML形式でメールを効率的に作成および送信する方法を実行する際に、トリッキーな問題が発生しています。従来のアプローチは、コードを手動で記述し、SMTPサーバーを使用して電子メールを送信することですが、これは時間がかかるだけでなく、エラーが発生しやすいことです。複数のソリューションを試した後、HTMLメールの作成と送信に役立つシンプルで使いやすいRestapiであるduwa.ioを発見しました。開発プロセスをさらに簡素化するために、Composerを使用してDuwa.ioのPHPライブラリ-CaptainDoe/Duwaをインストールおよび管理することにしました。

ドクトリンエンティティのシリアル化効率を改善:Sidus/Doctrine-Serializer-Bundleの適用 ドクトリンエンティティのシリアル化効率を改善:Sidus/Doctrine-Serializer-Bundleの適用 Apr 18, 2025 am 11:42 AM

多数の教義エンティティを含むプロジェクトに取り組んでいるとき、私は厳しい問題を抱えていました。エンティティがシリアル化され、脱必要にされるたびに、パフォーマンスは非常に非効率的になり、システムの応答時間が大幅に増加します。複数の最適化方法を試しましたが、うまくいきません。幸いなことに、Sidus/Doctrine-Serializer-Bundleを使用することで、この問題をうまく解決し、プロジェクトのパフォーマンスを大幅に改善しました。

Laravelのバージョン番号を表示する方法は? Laravelのバージョン番号を表示する方法 Laravelのバージョン番号を表示する方法は? Laravelのバージョン番号を表示する方法 Apr 18, 2025 pm 01:00 PM

Laravelフレームワークには、開発者のさまざまなニーズを満たすためにバージョン番号を簡単に表示するための組み込みの方法があります。この記事では、Composer Command Lineツールの使用、.ENVファイルへのアクセス、PHPコードを介したバージョン情報の取得など、これらの方法について説明します。これらの方法は、Laravelアプリケーションのバージョン化の維持と管理に不可欠です。

Composerを使用してFecmall Advanced Projectテンプレートをすばやく構築する方法 Composerを使用してFecmall Advanced Projectテンプレートをすばやく構築する方法 Apr 18, 2025 am 11:45 AM

eコマースプラットフォームを開発する場合、適切なフレームワークとツールを選択することが重要です。最近、機能が豊富なeコマースのウェブサイトを構築しようとしていたとき、私は困難な問題に遭遇しました。スケーラブルで完全に機能的なeコマースプラットフォームをすばやく構築する方法です。複数のソリューションを試してみて、FecmallのAdvanced Projectテンプレート(Fecmall/FBBCBase-App-Advanced)を選択することになりました。 Composerを使用することにより、このプロセスは非常にシンプルで効率的になります。作曲家は次のアドレスを通して学ぶことができます:学習アドレス

Laravelインストールコード Laravelインストールコード Apr 18, 2025 pm 12:30 PM

Laravelをインストールするには、これらの手順を順番に進みます。コンポーザー(MacOS/LinuxとWindows用)インストールLaravelインストーラーをインストールします。

See all articles