composertutorial の次のコラムでは、composer.lock ファイルの機能を紹介します。
プロジェクトで使用プロジェクトでコンポーザーを使用するには、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.22. 特定のバージョンの範囲: 比較記号を使用して、有効なバージョンの範囲を定義します。有効な記号には、>、>=、f903144ac97d3b09c93335bc3fe691ec=1.0 と同等、
4次に重要なバージョン: ~ 記号の最も適切な説明は、~1.2 は >1.2、インストール パッケージプロジェクト ファイル パスで実行しますコードは次のとおりです:$ 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 updatePackagist (これは、composer である必要があります。それほど強力ではありませんが、Python パッケージに少し似ています。笑、この標準があれば、将来的には間違いなく誰でも簡単に Web サイトを開発できるようになります。 Packagist は、composer のメイン ウェアハウスです。チェックアウトできます。composer ウェアハウスの基礎は、パッケージのソース コードです。 Packagist の目的は、誰でも使用できるライブラリを構築することです。リポジトリを使用できます。つまり、ファイル内の任意の必須パッケージを意味します。 自動ロードについてパッケージ ファイルを簡単にロードするために、Composer はファイル Vendor/autoload.php を自動的に生成します。このファイルは、必要なときにどこでも便利に使用できます
require 'vendor/autoload.php';これは、サードパーティのコードを非常に便利に使用できることを意味します。プロジェクトで monlog を使用する必要がある場合は、それを直接使用できます。それらは自動的にロードされています!コードは次のとおりです:
$log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo');もちろん、composer.json に独自のコードを読み込むこともできます: コードは次のとおりです:
{ "autoload": { "psr-0": {"Acme": "src/"} } }composer は psr-0 を Acme 名前空間として登録します
名前空間を介してファイル ディレクトリへのマッピングを定義できます。src ディレクトリはルート ディレクトリで、ベンダーは同じレベルのディレクトリです。たとえば、ファイル src/Acme/Foo.php には Acme\ Foo が含まれますclassautoload を追加した後、再インストールして、vendor/autoload.php ファイルを生成する必要がありますこのファイルを参照すると、オートローダー クラスが返されます。値を変数に追加し、さらに名前空間を追加します。これは、開発環境で非常に便利です。たとえば: コードは次のとおりです:
$loader = require 'vendor/autoload.php'; $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 サイトの他の関連記事を参照してください。