ベンダーパッケージ自体からlaravel5サービスプロバイダーをブートストラップする方法は?

ローハン

私はLaravel5アプリケーションに取り組んでいますが、アプリケーションのコードは複数のlaravel 5アプリケーションで再利用されることになっています。そのため、composerパッケージを作成し、このパッケージを任意の数のlaravelにインストールしたいと思います。同じ機能を持ち、それを基に構築する5つのアプリケーション。

私はコンポーザーパッケージの開発、特にサービスプロバイダーを使用してパッケージをLaravel5にフックするのは初めてです。これまでのところ、以下のようなサービスプロバイダーを使用すると、laravel5アプリケーションでルートを使用できるようになることを学びました。

<?php

namespace Uppdragshuset\AO\Tenant;

use Illuminate\Support\ServiceProvider;

class TenantServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        include __DIR__.'/routes.php';
    }
}

これを機能させるには、composerを介して新しいLaravel 5インストールにパッケージを追加する必要があります。次に、プロバイダーの配列を次のように更新する必要がありますapp.php

Uppdragshuset\AO\Tenant\TenantServiceProvider::class

これは私には理にかなっており、機能します。しかし今、私が開発しているパッケージにも独自の依存関係があり、それらの依存関係パッケージの多くにはlaravel 5サービスプロバイダーも含まれているため、それらを機能させるには、laravel5インストールにすべてを手動で含める必要があります。

しかし、私が自分で作成しているパッケージにこれらの依存サービスプロバイダーを登録する方法があるはずなので、上記の1つのプロバイダーを登録するだけで済みます。問題は、これを行う方法がわからず、どこにも同様の参照が見つからないことです。コンポーザーパッケージ自体から複数のサービスプロバイダーを登録するにはどうすればよいですか?

ローハン

そこで、コンポーザーパッケージ自体から依存サービスプロバイダーを登録する方法をついに理解しました。

私は、メインの持っているTenantServiceProvider主なアプリケーションにルートにフックすることになってもその上の移行、コンフィグとを公開する責任がされて私のパッケージの中に。

ファサードregister()メソッドを使用して、同じプロバイダーを介して依存するサービスプロバイダーをApp登録し、次のTenantServiceProviderようにメインのregisterメソッドで呼び出すことができることがわかりました。

public function register()
{
    include __DIR__.'/routes.php';

    App::register(RepositoryServiceProvider::class);
    App::register(\Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class);
}

このようにしてTenantServiceProvider、laravelアプリケーションのapp.php構成ファイルのプロバイダーの配列にを登録するだけで済みます。それが呼び出され、その上のregisterメソッドが呼び出されると、他のすべてのプロバイダーがApp::register()呼び出しを介して登録されます。これが誰かを助けることを願っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Laravelパッケージ開発でサービスプロバイダーを自動ロードする方法

分類Dev

Laravel5.5でベンダーパッケージサービスプロバイダーを拡張する方法

分類Dev

特定のインターネットサービスプロバイダーを私のウェブサイトからリダイレクトする方法

分類Dev

PowerShell PackageManagement、パッケージプロバイダーをアンインストールする方法は?

分類Dev

S3バケットから画像(ファイル)をレンダリングする方法は、フロントエンドですべてのパブリックアクセスをブロックしました(プライベート書き込み、プライベート読み取り)

分類Dev

データはサーバーから来るとマルチレベルドロップダウンリストとバインドを作成する方法

分類Dev

Angular 5:authguardからヘッダーにイベントをブロードキャストする方法は?

分類Dev

PIPからパッケージをインストールしている間、プライベートリポジトリ/サーバーを使用して

分類Dev

c#を使用してWindows 8アプリでモバイルサービスを介して画像をアップロードする方法、およびストレージからダウンロード画像をダウンロードする方法

分類Dev

プライベートgitサーバー(SSH)を使用してバウアーパッケージをインストールする方法

分類Dev

ビットバケットパイプラインでプライベートリポジトリからプルする方法は?

分類Dev

スパイダーでブラケットをオートコンプリートする方法

分類Dev

Flutter-ListView.builderインデックスとプロバイダーパッケージを使用してリストからアイテムを削除する

分類Dev

ダブルOSのラップトップからLinuxMintをアンインストールする方法は?

分類Dev

プライベートCKANデータセットからリソースをダウンロードする

分類Dev

Laravel5パッケージにコントローラーを追加する

分類Dev

コントローラでサービスプロバイダーを解決する方法は?

分類Dev

パッケージのサービスプロバイダー内から必要なパッケージのエイリアスをロードすることは可能ですか?

分類Dev

Reposyncはアップデートサブスクリプションからパッケージをダウンロードできません

分類Dev

Windowsサービスからプロセス開始イベントをリッスンする方法は?

分類Dev

zc.buildoutのプライベートpypiからパッケージをインストールする

分類Dev

ソースプロバイダーのビットバケットが機能しないパイプラインを作成するためのAzureDevops Rest API

分類Dev

ROSサービスプロバイダーはクライアントトピックにサブスクライブする必要があります

分類Dev

データベースからデータを取得するLaravelサービスプロバイダー

分類Dev

糸でプライベートnpmパッケージをインストールする方法は?

分類Dev

透明なオーバーラップビューから下にあるビューにタッチイベントをバイパスする方法

分類Dev

ビジーアイコンでブートストラップモーダルを表示する方法

分類Dev

Laravel 5ビューコンポーザーサービスプロバイダー、ワイルドカードからプレフィックスを除外

分類Dev

Javaのみを使用してプライベートリポジトリからGitHubリリースアセットをダウンロードする方法

Related 関連記事

  1. 1

    Laravelパッケージ開発でサービスプロバイダーを自動ロードする方法

  2. 2

    Laravel5.5でベンダーパッケージサービスプロバイダーを拡張する方法

  3. 3

    特定のインターネットサービスプロバイダーを私のウェブサイトからリダイレクトする方法

  4. 4

    PowerShell PackageManagement、パッケージプロバイダーをアンインストールする方法は?

  5. 5

    S3バケットから画像(ファイル)をレンダリングする方法は、フロントエンドですべてのパブリックアクセスをブロックしました(プライベート書き込み、プライベート読み取り)

  6. 6

    データはサーバーから来るとマルチレベルドロップダウンリストとバインドを作成する方法

  7. 7

    Angular 5:authguardからヘッダーにイベントをブロードキャストする方法は?

  8. 8

    PIPからパッケージをインストールしている間、プライベートリポジトリ/サーバーを使用して

  9. 9

    c#を使用してWindows 8アプリでモバイルサービスを介して画像をアップロードする方法、およびストレージからダウンロード画像をダウンロードする方法

  10. 10

    プライベートgitサーバー(SSH)を使用してバウアーパッケージをインストールする方法

  11. 11

    ビットバケットパイプラインでプライベートリポジトリからプルする方法は?

  12. 12

    スパイダーでブラケットをオートコンプリートする方法

  13. 13

    Flutter-ListView.builderインデックスとプロバイダーパッケージを使用してリストからアイテムを削除する

  14. 14

    ダブルOSのラップトップからLinuxMintをアンインストールする方法は?

  15. 15

    プライベートCKANデータセットからリソースをダウンロードする

  16. 16

    Laravel5パッケージにコントローラーを追加する

  17. 17

    コントローラでサービスプロバイダーを解決する方法は?

  18. 18

    パッケージのサービスプロバイダー内から必要なパッケージのエイリアスをロードすることは可能ですか?

  19. 19

    Reposyncはアップデートサブスクリプションからパッケージをダウンロードできません

  20. 20

    Windowsサービスからプロセス開始イベントをリッスンする方法は?

  21. 21

    zc.buildoutのプライベートpypiからパッケージをインストールする

  22. 22

    ソースプロバイダーのビットバケットが機能しないパイプラインを作成するためのAzureDevops Rest API

  23. 23

    ROSサービスプロバイダーはクライアントトピックにサブスクライブする必要があります

  24. 24

    データベースからデータを取得するLaravelサービスプロバイダー

  25. 25

    糸でプライベートnpmパッケージをインストールする方法は?

  26. 26

    透明なオーバーラップビューから下にあるビューにタッチイベントをバイパスする方法

  27. 27

    ビジーアイコンでブートストラップモーダルを表示する方法

  28. 28

    Laravel 5ビューコンポーザーサービスプロバイダー、ワイルドカードからプレフィックスを除外

  29. 29

    Javaのみを使用してプライベートリポジトリからGitHubリリースアセットをダウンロードする方法

ホットタグ

アーカイブ