Laravel拡張パッケージの開発、ローカルテスト、配布方法


Laravel拡張パッケージの開発方法については、すでに多くの記事があります.しかし、多くの文章はあまりにも片面的で、完璧ではありません.そして、私が実際に拡張パッケージを開発している間に、多くの問題に遭遇しました.私は自分の開発経験と、出会った問題を記録して、みんなに共有しました.
拡張パッケージの開発
1.新規プロジェクトの作成、拡張パッケージ構成の初期化
まず、新しいLaravelプロジェクトを作成します.
composer create-project laravel/laravel laradmin -vvv
次に、このプロジェクトでディレクトリpackages/{your_name}/{your_package_name}を作成する
mkdir -p packages/angkee/laradmin
拡張パッケージディレクトリに入りcomposer構成を初期化
cd packages/angkee/laradmin
composer init
実行後、プロジェクトの下にcomposer.jsonファイルが生成されます.
{
    "name": "angkee/laradmin",
    "description": "Laradmin is a laravel package for can be generated fast backend management panel",
    "license": "MIT",
    "authors": [
        {
            "name": "angkee",
            "email": "[email protected]"
        }
    ],
    "require": {}
}

2.拡張パッケージの基本ディレクトリ、ファイルの作成
一般的には、次のファイルとディレクトリを作成します.
angkee/laradmin
├── src  #            
├── tests #       
├── README.md
├── composer.json
└── LICENSE

3.拡張パッケージcomposer構成の変更
次に、この拡張パッケージのcomposer.jsonファイルを変更し、composerの自動ロード構成と拡張パッケージのネーミングスペースを設定します.
{
    ...,
    "autoload": {
        "psr-4": {
            "Angkee\\Laradmin\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Angkee\\Laradmin\\Tests\\": "tests/"
        }
    },
    ...
}

4.拡張パッケージの論理コードの作成
次に、AdminServiceProvider.phpAdmin.phpファイルを作成します.
app->singleton('admin', function () {
            return new Admin;
        });
    }
}

このとき、この拡張パッケージは開発されたもので、次にローカルインストール、テストを開始します.
拡張パッケージのローカルテストAdminServiceProviderをプロジェクトのconfig/appに追加する.php providers配列
'providers' => [
    ...,
    Angkee\Admin\AdminServiceProvider::class,
],

プロジェクトの下のcomposerを再修正します.jsonファイル
{
    "require": {
        ...,
        "angkee/laradmin": "dev-master"
    },
    ...,
    "autoload": {
        ...,
        "psr-4": {
            ...,
            "Angkee\\Admin\\": "packages/laradmin/src/"
        }
    },
    ...
}

コマンドの実行:
composer dump-autoload
composer update
最後に、routes/web.phpファイルを修正します.
Route::get('/', function () {
    app('admin')->printRunning();
});

この时、私达はブラウザを开いてこのプロジェクトにアクセスして、runningを表示して、おめでとうございます、成功しました!
拡張パッケージの公開
拡張パッケージの開発、テストが完了すると、この時点でPackagistにリリースできます.
1.GitHubへのコードのコミット
まず、拡張パッケージのコードをGitHubに提出し、GitHubバージョンライブラリのアドレスを記録する必要があります.注意はHTTPSです.
2.パッケージをPackagistに公開する
その後、Packagistの公式サイトにアクセスし、ログイン後、右上隅のSubmitボタンをクリックし、リリースウィザードに入ります.
このとき、GitHubバージョンライブラリのアドレスをRepository URL入力ボックスに記入し、Submitコミットボタンをクリックすると、すべてが順調で、パブリケーションが成功したことがわかります.
3.コード同期の設定Pakagistでパッケージがリリースされると、その後のバージョンの更新とコードの同期によって、GitHubのイベント通知サービスが保証され、コードの提出時にイベントがトリガーされ、コードを他の環境に同期するメカニズムがあります.
サービスを追加します.サービスリストでPackagistを選択し、主に2つのPackagist構成情報を入力します.
ユーザ名:注意Packagistのユーザ名Token:通信トークンDomain:記入不要
ここでTokenはPackagistの個人設定で取得する必要があります.
記入し終わって、提出した後、一度テストして、最初の同期を完成して、成功は情報を提示します.
Okay, the test payload is on its way.
Packagistに戻り、リフレッシュすると、同期メカニズムが有効になったことを示すプロンプトは表示されないはずです.その後、GitHubが変化するたびに、自動的に通知され、同期されます.
4.バージョン情報の設定
バージョンのデフォルトはdev-masterで、Componentパッケージのバージョン番号はGitのtagから同期します.
git tag 1.0.0
git push --tag
拡張パッケージがリリースされたばかりで、この時点でインストールすると、インストールパッケージのエラーが見つからない可能性があります.サーバーの同期を少し待つ必要があります.一般的には3-5分以上かかりますが、すべてが正常であれば、バージョンのヒントが表示され、インストールに成功します.
参考文献
  • Laravelの拡張プラグイン開発ガイド
  • 人は私のために、私は人のために!コミュニティに独自のComponenterパッケージ
  • を公開
  • Component&Laravelパッケージローカル開発