Composerの基本的な使い方
プロジェクトでcomposer.jsonを使用します
プロジェクトでコンポーザーを使用するには、composer.json ファイルが必要です。このファイルは主に、パッケージと他の要素タグ間の関係を宣言するために使用されます。
キーワードが必要です
composer.json で最初に行うことは、require キーワードを使用することです。プロジェクトに必要なパッケージを Composer に伝えます。
コードをコピーします コードは次のとおりです:
{
「必要」: {
"モノログ/モノログ": "1.0.*"
}
}
パッケージの命名
パックバージョン
使用する必要がある 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 は依存関係を処理した後にファイルを作成します。
最新バージョンの依存関係を取得し、composer.lock ファイルをアップグレードするには、update コマンドを使用する必要があります。
コードをコピーします コードは次のとおりです:
作曲家アップデート
いくつかのパッケージを更新したいだけの場合は、次のように個別にリストすることができます:
コードをコピーします コードは次のとおりです:
コンポーザー更新ベンダー/パッケージベンダー/package2
コードをコピーします コードは次のとおりです:
作曲家アップデートベンダー/*