2017-09-07 8 views
1

数日前、私はLaravelを学び始めました.1つのメカニズムを理解できません。カスタムクラス、インターフェイスなどを登録(バインド)できるAppServiceProviderがあります。しかし、多くのチュートリアル作成者が登録用のカスタムクラスを作成すると、AppServiceProviderで "register"メソッドを使用する代わりにカスタムサービスプロバイダクラスも作成されます。なぜAppServiceProviderを使用しないのでしょうか?Laravel 5:AppServiceProvider対カスタムプロバイダ

また、他の組み込みサービスプロバイダを調べて、official guideに記載されていないいくつかのメソッドとフィールドを見つけました(たとえば、AuthServiceProviderは$ policiesフィールドを保護しています)。たぶん、これを理解することで、私はどこで標準のプロバイダを使うことができますか?しかし、私はこの質問に答えるどんなリンクもGoogleにはできません。

ありがとうございました。

答えて

1

大部分は、コードの可読性に関するものです。たぶんすべてをAppServiceProviderに入れても問題ありませんが、時間が経つにつれてファイルが非常に長くて非常に向きづらいので、アプリケーションロジックの各部分について個別のServiceProviderを作成したい場合があります。

0

ファイルとフォルダをどのように構造化したいのかはあなた次第です。私の場合、私は自分のファイルをモジュール化しようとします(例えば、認証はモジュールです)。このモジュールに関連するグループ化サービスプロバイダは、AppServiceProviderの混乱を避けるために、別のサービスプロバイダに配置されます。