ホームページ 開発ツール composer Composer.lock ファイルの役割の概要

Composer.lock ファイルの役割の概要

Dec 16, 2019 am 11:37 AM
composer

composertutorial の次のコラムでは、composer.lock ファイルの機能を紹介します。

Composer.lock ファイルの役割の概要

#Composer の基本的な使い方

プロジェクトで使用プロジェクトでコンポーザーを使用するには、composer.json ファイルが必要です。このファイルは主に、パッケージと他の要素タグ間の相互関係を宣言するために使用されます。

require キーワード

composer.json で最初に行うことは、require キーワードを使用することです。プロジェクトに必要なパッケージを Composer に伝えます

コードは次のとおりです:

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

ご覧のとおり、require オブジェクトはパッケージ名 (monolog/monolog) をマップし、パッケージのバージョンは 1.0 です。*

パッケージの命名

基本的に、パッケージの命名はメイン名/プロジェクト名 (monolog/monolog) です。メイン名は一意である必要がありますが、パッケージであるプロジェクトの名前は、同じ名前にすることもできます (例: igorw/json、seldaek /json)

パッケージ バージョン

使用する必要がある monolog のバージョンは 1.0.* です。つまり、次のとおりです。バージョンは 1.0.0、1.0.2、1.0 などの 1.0 ブランチです。99

バージョン定義の 2 つの方法:

1. 標準バージョン: 定義保証されたバージョンのパッケージ ファイル (例: 1.0.2

2. 特定のバージョンの範囲: 比較記号を使用して、有効なバージョンの範囲を定義します。有効な記号には、>、>=、<、 <=、!=

3. ワイルドカード文字: 特殊 一致する記号 * (例: 1.0.*) は >=1.0 と同等、<1.1 バージョンで十分です

4次に重要なバージョン: ~ 記号の最も適切な説明は、~1.2 は >1.2、<2.0 と比較すると同等ですが、~1.2.3 は >=1.2.3、<1.3 バージョンと同等であるということです。

インストール パッケージ

プロジェクト ファイル パスで実行します

コードは次のとおりです:

$ composer install
ログイン後にコピー

これにより、monolog/ が自動的にダウンロードされます。 monolog ファイルをディレクトリの下にあるベンダーに送信します。

次に説明する必要があるのは、

composer.lock - ロック ファイルです。

必要なパッケージをすべてインストールした後、composer は標準の A を生成します。パッケージのバージョン ファイルは、composer.lock ファイル内にあります。これにより、すべてのパッケージのバージョンがロックされます。

composer.lock (もちろん、composer.json と一緒に) を使用して、プロジェクトのバージョンを制御します。

これは非常に重要です。install コマンドを使用して処理する場合、最初にcombos.lock ファイルが存在するかどうかを確認します。存在する場合は、対応するバージョンがダウンロードされます (composer.json の構成に基づいていない)。つまり、プロジェクトをダウンロードするすべてのユーザーが同じバージョンを取得することになります。

composer.lock が存在しない場合、composer は、composer.json を通じて必要なパッケージと相対バージョンを読み取り、composer.lock ファイルを作成します。

この方法では、パッケージが存在した後に、次のことができます。新しいバージョンにアップグレードすると、自動的に更新されません。新しいバージョンにアップグレードするには、update コマンドを使用するだけです。この方法で、パッケージの最新バージョンを取得し、composer.lock ファイルも更新できます。

$ php composer.phar update
或者
$ composer update
ログイン後にコピー

Packagist (これは、composer である必要があります。それほど強力ではありませんが、Python パッケージに少し似ています。笑、この標準があれば、将来的には間違いなく誰でも簡単に Web サイトを開発できるようになります。

Packagist は、composer のメイン ウェアハウスです。チェックアウトできます。composer ウェアハウスの基礎は、パッケージのソース コードです。 Packagist の目的は、誰でも使用できるライブラリを構築することです。リポジトリを使用できます。つまり、ファイル内の任意の必須パッケージを意味します。

自動ロードについて

パッケージ ファイルを簡単にロードするために、Composer はファイル Vendor/autoload.php を自動的に生成します。このファイルは、必要なときにどこでも便利に使用できます

require &#39;vendor/autoload.php&#39;;
ログイン後にコピー

これは、サードパーティのコードを非常に便利に使用できることを意味します。プロジェクトで monlog を使用する必要がある場合は、それを直接使用できます。それらは自動的にロードされています!

コードは次のとおりです:

$log = new Monolog\Logger(&#39;name&#39;);
$log->pushHandler(new Monolog\Handler\StreamHandler(&#39;app.log&#39;, Monolog\Logger::WARNING));
$log->addWarning(&#39;Foo&#39;);
ログイン後にコピー

もちろん、composer.json に独自のコードを読み込むこともできます:

コードは次のとおりです:

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}
ログイン後にコピー

composer は psr-0 を Acme 名前空間として登録します

名前空間を介してファイル ディレクトリへのマッピングを定義できます。src ディレクトリはルート ディレクトリで、ベンダーは同じレベルのディレクトリです。たとえば、ファイル src/Acme/Foo.php には Acme\ Foo が含まれますclass

autoload を追加した後、再インストールして、vendor/autoload.php ファイルを生成する必要があります

このファイルを参照すると、オートローダー クラスが返されます。値を変数に追加し、さらに名前空間を追加します。これは、開発環境で非常に便利です。たとえば:

コードは次のとおりです:

$loader = require &#39;vendor/autoload.php&#39;;
$loader->add('Acme\Test', __DIR__);
ログイン後にコピー

コンポーザの役割.lock ファイル

インストール コマンドは、現在のディレクトリから combos.json ファイルを読み取り、依存関係を処理して、ベンダー ディレクトリにインストールします。

コードは以下のように表示されます:

composer install
ログイン後にコピー

如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。

如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。

代码如下:

composer update
ログイン後にコピー

这将解决项目的所有依赖,并将确切的版本号写入 composer.lock。

如果你只是想更新几个包,你可以像这样分别列出它们:

代码如下:

composer update vendor/package vendor/package2
ログイン後にコピー

你还可以使用通配符进行批量更新:

代码如下:

composer update vendor/*
ログイン後にコピー

以上がComposer.lock ファイルの役割の概要の詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

クラフト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が見つかりました。

Laravel Frameworkインストール方法 Laravel Frameworkインストール方法 Apr 18, 2025 pm 12:54 PM

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

作曲家とlaravelcmsをすばやく構築する方法:mki-labs/エスプレッソの実践的な経験 作曲家とlaravelcmsをすばやく構築する方法:mki-labs/エスプレッソの実践的な経験 Apr 18, 2025 am 07:36 AM

新しいLaravelプロジェクトを開発する際に、トリッキーな問題に遭遇しました。完全に機能的で簡単なコンテンツ管理システム(CMS)を迅速に構築する方法です。私は複数のソリューションを試しましたが、複雑な構成と不便なメンテナンスのためにすべてをあきらめました。 LaravelcmsパッケージMKI-Labs/Espressoを発見するまで、インストールが簡単であるだけでなく、強力な機能と直感的な管理インターフェイスも提供し、問題を完全に解決しました。

Composerを使用してHTTP要求の問題を解決する方法:Yiche/HTTPライブラリの実用的なガイド Composerを使用してHTTP要求の問題を解決する方法:Yiche/HTTPライブラリの実用的なガイド Apr 18, 2025 am 08:06 AM

開発中、HTTP要求が必要になることがよくあります。これは、データを取得したり、データを送信したり、外部APIと対話するためです。ただし、複雑なネットワーク環境に直面してリクエスト要件を変更すると、HTTPリクエストを効率的に処理する方法が課題になります。プロジェクトで問題に遭遇しました。リクエストを異なるAPIに頻繁に送信し、リクエストを記録して、その後のデバッグと分析を促進する必要があります。いくつかの方法を試した後、Yiche/HTTPライブラリを発見しました。 HTTP要求の処理を簡素化するだけでなく、動的ロギング機能も提供し、開発効率を大幅に改善します。

コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 コンポーザーを使用して依存関係注入を解きます:PSR-11コンテナインターフェイスの適用 Apr 18, 2025 am 07:39 AM

大規模なPHPプロジェクトを開発する際に、一般的ではあるが難しい問題に遭遇しました。依存関係を効果的に管理し、注入する方法です。最初は、グローバル変数と手動注入を使用しようとしましたが、これによりコードの複雑さが増加するだけでなく、簡単にエラーが発生しました。最後に、PSR-11コンテナインターフェイスを使用し、作曲家の力を使用して、この問題をうまく解決しました。

Laravelの日本の郡レベルの管理部門を簡単に管理する方法:Petfinder/県の使用ガイド Laravelの日本の郡レベルの管理部門を簡単に管理する方法:Petfinder/県の使用ガイド Apr 18, 2025 am 07:51 AM

日本に関連するLaravelプロジェクトを開発する際には、日本の郡レベルの行政部門情報を効率的に管理および使用する方法を開発する際に、困難な問題に遭遇しました。この問題には、データの正確性だけでなく、データの使いやすさとメンテナンスを考慮する必要があります。いくつかの調査の後、私はLaravelパッケージのPetfinder/県を発見しました。

作曲家を使用したJavaScriptエラー処理の問題を解決する方法 作曲家を使用したJavaScriptエラー処理の問題を解決する方法 Apr 18, 2025 am 08:30 AM

複雑なWebアプリケーションを開発する際には、JavaScriptエラーを効果的に処理してログインする方法を開発する際に、困難な問題を抱えています。私はいくつかの方法を試しましたが、このライブラリDvasilenko/Alterego_toolsを見つけるまで、それらのどれも私のニーズを満たすことができませんでした。このライブラリの設置を通じて、この問題を簡単に解決し、プロジェクトの保守性と安定性を大幅に改善しました。作曲家は次のアドレスを通して学ぶことができます:学習アドレス

Symfony/Consoleライブラリを使用して、効率的なコマンドラインインターフェイスを作成する実用的な経験 Symfony/Consoleライブラリを使用して、効率的なコマンドラインインターフェイスを作成する実用的な経験 Apr 18, 2025 am 07:30 AM

プロジェクト開発では、毎日のタスクを簡素化したり、プロセスを自動化するためにコマンドラインツールを作成する必要があることがよくあります。ただし、美しくテストしやすいコマンドラインインターフェイスを作成するのは簡単ではありません。最近、コマンドラインツールを必要とするプロジェクトを開発しながら、この問題に遭遇しました。いくつかの調査の後、私はSymfony/Consoleライブラリを見つけました。これにより、コマンドラインインターフェイスの作成プロセスが大幅に簡素化されます。

See all articles