combos.lock ファイルの役割、composer.lock_PHP チュートリアルの役割

WBOY
リリース: 2016-07-12 08:59:23
オリジナル
959 人が閲覧しました

composer.lockファイルの役割、composer.lockの役割

Composerの基本的な使い方

プロジェクトでcomposer.jsonを使用します

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


キーワードが必要です

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

コードをコピーします コードは次のとおりです: {
「必要」: {
"モノログ/モノログ": "1.0.*"
}
}

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


パッケージの命名

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

パックバージョン

使用する必要がある monolog のバージョンは 1.0.* です。これは、バージョンが 1.0.0、1.0.2、または 1.0.99 などの 1.0 ブランチである限りを意味します

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

1. 標準バージョン: 保証バージョンのパッケージ ファイルを定義します (例: 1.0.2)。 2. 特定の範囲のバージョン: 有効なバージョンの範囲を定義するには、比較記号を使用します。有効な記号には、>、>=、<、<=、!=

などがあります。 3. ワイルドカード: 特殊な一致記号 * (たとえば、1.0.* は >=1.0 に相当します。) 4. 次に重要なバージョン: ~ 記号の最も分かりやすい説明は、~1.2 はバージョン 1.2 未満、2.0 未満と同等ですが、バージョン 1.2.3 はバージョン 1.2.3 未満、1.3 未満と同等であるということです。

インストールパッケージ

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


コードをコピーします コードは次のとおりです: $コンポーザーのインストール

このようにして、monolog/monolog ファイルがベンダー ディレクトリに自動的にダウンロードされます。

次に説明しなければならないことは

composer.lock - ロックファイル

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

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

これは非常に重要です。install コマンドを使用して処理する場合、まず、composer.lock ファイルが存在するかどうかが判断され、存在する場合は、対応するバージョンがダウンロードされます (composer.json の構成には依存しません)。 ) これは、プロジェクトをダウンロードする人は誰でも同じバージョンを入手できることを意味します。

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

このように、パッケージに新しいバージョンが追加された後、新しいバージョンにアップグレードするには、update コマンドを使用するだけで、パッケージの最新バージョンを取得し、パッケージを更新することができます。作曲家。ロックファイル。

$phpcomposer.phar アップデート

または

$作曲家アップデート

Packagist (これは、composer である必要があります。それほど強力ではありませんが、Python パッケージに少し似ています。はは、この標準があれば、将来的には間違いなく誰でも Web サイトを開発するのが簡単になります。多くの人のアイデアから学ぶことができます。コードを使用すると、さらに便利になります。 Packagist は、composer のメイン ウェアハウスです。これを確認できます。これは、誰でも使用できるウェアハウスを構築することを目的としています。は、ファイルに必要なパッケージが含まれていることを意味します。


自動読み込みについて

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

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


コードをコピーします

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

$log = 新しい MonologLogger('name'); $log->pushHandler(new MonologHandlerStreamHandler('app.log', MonologLogger::WARNING)); $log->addWarning('Foo');
もちろん、独自のコードをcomposer.jsonにロードすることもできます:


コードをコピーします

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

{ 「自動ロード」: { "psr-0": {"アクメ": "src/"} } }


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

名前空間を介してファイル ディレクトリへのマッピングを定義できます。たとえば、src ディレクトリはルート ディレクトリであり、ベンダーは同じレベルのディレクトリです。たとえば、ファイル src/Acme/Foo.php には AcmeFoo クラスが含まれます。
自動ロードを追加した後、再インストールしてvendor/autoload.phpファイルを生成する必要があります

このファイルを参照すると、オートローダー クラスが返されるので、返された値を変数に入れて、さらに名前空間を追加できます。たとえば、次のようになります。
コードをコピーします コードは次のとおりです: $loader = 'vendor/autoload.php' が必要です;
$loader->add('AcmeTest', __DIR__);

composer.lockファイルの役割

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

コードをコピーします コードは次のとおりです: 作曲家のインストール

現在のディレクトリにcomposer.lockファイルがある場合、composer.jsonファイルから依存関係を取得する代わりに、このファイルから依存関係バージョンを読み取ります。これにより、ライブラリのすべての利用者が同じ依存関係バージョンを取得できるようになります。

composer.lock ファイルがない場合、composer は依存関係を処理した後にファイルを作成します。

最新バージョンの依存関係を取得し、composer.lock ファイルをアップグレードするには、update コマンドを使用する必要があります。

コードをコピーします コードは次のとおりです: 作曲家アップデート

これにより、プロジェクトのすべての依存関係が解決され、正確なバージョン番号がcomposer.lockに書き込まれます。

いくつかのパッケージを更新したいだけの場合は、次のように個別にリストすることができます:

コードをコピーします コードは次のとおりです: コンポーザー更新ベンダー/パッケージベンダー/package2

バッチ更新にワイルドカードを使用することもできます:

コードをコピーします コードは次のとおりです: 作曲家アップデートベンダー/*

http://www.bkjia.com/PHPjc/1098975.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1098975.html技術記事 Composer.lock ファイルの役割、composer.lock の役割 Composer の基本的な使用法 プロジェクトで Composer.json を使用する プロジェクトで Composer を使用するには、この記事...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート