ホームページ  >  記事  >  開発ツール  >  エイリアスを使用する理由

エイリアスを使用する理由

藏色散人
藏色散人転載
2019-10-28 13:44:233346ブラウズ

composer チュートリアル の次のコラムでは、ブランチ エイリアスを使用する理由を紹介します。困っている友人の役に立てば幸いです。

エイリアスを使用する理由

エイリアスを使用する理由

バージョン管理システム リポジトリを使用する場合、2.0 や 2.0.x などのバージョンに似たブランチからのみ同等のバージョンを取得できます。 master ブランチの場合、dev-master バージョンは 1 つだけ取得できます。 bugfix ブランチの場合は、dev-bugfix バージョンを取得します。

マスター ブランチが 1.0.1、1.0.2、1.0.3 などの 1.0 開発プロセスをマークするために使用されている場合、ライブラリに依存するパッケージには 1.0.* が必要になる場合があります。

最新の dev-master を使用したい場合、問題が発生します。一部のパッケージでは 1.0.* が必要な場合があり、dev-master が 1.0.* と一致しないため、これら 2 つは競合を引き起こします。

上記に基づいて、エイリアスが表示されます。

ブランチ エイリアス

dev-master ブランチは、メイン VCS リポジトリの 1 つです。最新のメジャー開発バージョンを必要とする人がいるのはよくあることです。したがって、Composer では、dev-master ブランチに 1.0.x-dev バージョンのエイリアスを付けることができます。これは、composer.json の extra の下に Branch-alias フィールドを指定することによって行われます。

{
    "extra": {
        "branch-alias": {
            "dev-master": "1.0.x-dev"
        }
    }
}

エイリアスが比較できないバージョン (dev-develop など) の場合は、ブランチ名の先頭に dev- を付ける必要があります。 。同等のバージョンのエイリアス (つまり、数字で始まり .x-dev で終わる) を追加することもできますが、より具体的なバージョンとしてのみ追加できます。たとえば、1.x-dev は 1.2.x-dev としてエイリアス化できます。

エイリアスは同等の開発バージョンである必要があり、ブランチ エイリアスが参照するブランチに表示される必要があります。 dev-master の場合は、master ブランチにコミットする必要があります。

つまり、多くの人が今 1.0.* を必要としており、彼は喜んで dev-master をインストールするでしょう。

ブランチ エイリアスを使用するには、エイリアスが付けられたパッケージのリポジトリを所有している必要があります。フォークを維持せずにサードパーティのパッケージにエイリアスを追加する場合は、以下で説明するようにインライン エイリアスを使用します。

インライン エイリアスが必要です

ブランチ エイリアスは、主要な開発ラインに役立ちます。ただし、それらを使用するには、ソース リポジトリを制御する必要があり、変更をバージョン管理にコミットする必要があります。

ローカル プロジェクトの依存関係であるライブラリのバグ修正を試みる場合、これはあまり興味深いことではありません。

したがって、require フィールドと require-dev フィールドでパッケージにエイリアスを付けることができます。 monolog/monolog パッケージにバグが見つかったとします。 GitHub 上で Monolog のクローンを作成し、bugfix と呼ばれるブランチで問題を修正します。次に、このバージョンの monolog をローカル プロジェクトにインストールします。

あなたは symfony/monolog-bundle を使用していますが、これには monolog/monolog バージョン 1.* が必要です。したがって、この制約に一致するには dev-bugfix を使用する必要があります。

これをプロジェクトのルートのcomposer.jsonに追加します:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/you/monolog"
        }
    ],
    "require": {
        "symfony/monolog-bundle": "2.0",
        "monolog/monolog": "dev-bugfix as 1.0.x-dev"
    }
}

これにより、monolog/monologのdev-bugfixのバージョンがGithubから取得され、1.0.x -devにエイリアスされます。

注: インライン エイリアシングは、root ユーザーのみが使用できる機能です。インライン エイリアスを持つパッケージが必要な場合は、バージョン制約としてエイリアス ( as の右側) を使用します。 as の左側の部分は破棄されます。したがって、A が B を必要とし、B が 1.0.x-dev の monolog/monolog バージョンの dev-bugfix を必要とする場合、A をインストールすると B にも 1.0.x-dev が必要になります。これはブランチ エイリアスまたは実際の 1.0 ブランチとして存在する可能性があります。 。そうでない場合は、 A の combos.json で再度エイリアスをインライン化する必要があります。

注: インライン エイリアスの使用は、特に公開されたパッケージ/ライブラリの場合は避けてください。バグを見つけた場合は、修正を上流にマージしてみてください。これは、パッケージのユーザーの問題を回避するのに役立ちます。

コンポーザーに関するその他の技術記事については、

composer コマンド 使用方法チュートリアルのコラムをご覧ください。

以上がエイリアスを使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。