Composer ソース管理ツール CRM を Composer プラグインにリファクタリングする

藏色散人
リリース: 2019-08-27 14:35:54
転載
3184 人が閲覧しました

次のコラム composer 使用法チュートリアル では、Composer ソース管理ツール CRM を Composer プラグインに再構築する方法について説明します。困っている友人の役に立てば幸いです。

Composer ソース管理ツール CRM を Composer プラグインにリファクタリングする

CRM は、コンポーザー ソースを管理するために私がずっと前に作成したコマンド ライン ツールです。簡単なコマンドで複数の中国語ミラーを切り替えるように設計されています. を使いやすく管理するため;

当時はコンポーザープラグインのことをあまり知らなかったので比較的大雑把な方法でしたが、最下層は目的を達成するためにコンポーザーコマンドを実行しましたLinux で使用する場合はほぼ問題ありませんでした。特別な認識はありませんが、勝利は少し鈍くなります。これも当たり前のことですが、結局切り替え時は複数のコマンドを同時に実行するのと同じことになります; その後、仕事の機会でコンポーザープラグインの開発について知ったので、リファクタリングが登場;

with 1.x バージョンと比較して、2.x では主に次の変更点があります:

メタデータの保存場所の変更

1.x バージョンでは、ユーザーのホーム フォルダーの下にあります。カスタマイズされたファイルで、すべてのユーザー操作は最終的にこの json ファイルに保存されます。新しいバージョンでは、コンポーザー グローバル パスの下の config.json にメタデータが保存されます:

{
    "config": {
        "_alias": {
            "val": "validate",
            "up": "update",
            "req-sf": "require symfony/event-dispatcher symfony/console",
            "req": "require",
            "i": "install"
        },
        "_repositories": [{
                "name": "composer",
                "url": "https://packagist.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "phpcomposer",
                "url": "https://packagist.phpcomposer.com",
                "homepage": "",
                "author": ""
            }, {
                "name": "composer-proxy",
                "url": "https://packagist.composer-proxy.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "laravel-china",
                "url": "https://packagist.laravel-china.org",
                "homepage": "",
                "author": ""
            }]
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.laravel-china.org"
        }
    }
}
ログイン後にコピー

これは、composer によって管理されています。私たちはファイルを借りて、その中のフィールドを占有しました。これは、コンポーザーのエコシステムとより一致しています。

コマンドの変更

1.x バージョンは独立したエントリ アプリケーションであり、コマンドはすべて crm キーワードで始まります。 crm ls など; 新しいバージョンのプラグインでは、crm はコマンド プロバイダー (コマンド プロバイダー) の役割になるため、新しいバージョンではコンポーザー エントランスを使用します;

新しいバージョン使用法

#利用可能なすべてのミラーのリスト#

$ composer repo:ls
  composer       https://packagist.org
  phpcomposer    https://packagist.phpcomposer.com
* composer-proxy https://packagist.composer-proxy.org
  laravel-china  https://packagist.laravel-china.org
ログイン後にコピー
「*」のマークは、現在使用中のソースを示します。

#ミラーを切り替える

$ composer repo:use
Please select your favorite registry (defaults to composer)
  [0] composer
  [1] phpcomposer
  [2] composer-proxy
  [3] laravel-china
 >
ログイン後にコピー
イメージ名を直接追加して、選択をスキップすることもできます。

$ composer repo:use phpcomposer
ログイン後にコピー

オプション --current/-c を追加して、現在のプロジェクトのソースを切り替えます。デフォルトでは、グローバルソース。

すべてのコマンド

次のコマンドを実行して、

$ composer repo
/  ___| |  _  \      /   |/   |
| |     | |_| |     / /|   /| |
| |     |  _  /    / / |__/ | |
| |___  | | \ \   / /       | |
\_____| |_|  \_\ /_/        |_|
Composer Repository Manager version 2.0.0
Usage:
  command [options] [arguments]
Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands for the "repo" namespace:
  repo:add     Creates a repository
  repo:ls      List all available repositories
  repo:remove  Remove a repository
  repo:use     Change current repository
ログイン後にコピー

概要

変更内容に加えて、使用法において、新しいバージョンでの最も重要な改善点は速度かもしれません。ご質問がある場合は、投稿の下にメッセージを残すか、github の問題に投稿して、フィードバックをお寄せください。

この小さなツールがすべての人の仕事や開発に利便性をもたらすことを願っています。

プロジェクトのアドレスを添付します:

https://github.com/slince/composer-registr...

以上がComposer ソース管理ツール CRM を Composer プラグインにリファクタリングするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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