2017-11-13 8 views
0

ルック:Laravel/Lumen PSR-4:クラスをサブディレクトリに入れると、別の名前空間を使用する必要がありますか?私のアプリケーション構造の以下の部分で

App 
-Events 
-Http 
--Controllers 
---Rest 
-Services 
--Base 
--Primary 

私がやりたい何が、すべてのサービスとすべてのコントローラの名前空間App\Http\Controllerの名前空間App\Servicesを使用することです。

これは私のアプリケーションは作曲がロードされている方法です。

"autoload": { 
    "psr-4": { 
     "App\\": "app/" 
    } } 

これは私が得る例外です:

(1/1)FatalThrowableErrorクラス 'のApp \ Servicesの\ CapabilityService' ではない 見つけた

CapabilityServiceがありますが、それはサブフォルダPrimary内にあります。サブディレクトリからファイルを1つの名前空間に一緒に自動ロードする方法はありますか?もしそうなら、それをしないとどのように重要な理由がありますか?

これはCapabilityServiceです:

namespace App\Services; 

これは場所です:

+0

なぜ 'App \ Services \ Primary \ CapabilityService'を使用しないのですか? – Hamoud

+0

'CapabilityService'の名前空間とは何ですか? – Camilo

+0

@Hamoud私はすべてのサービスに共通の名前空間を持つ方が簡単だと思います。私の質問を編集してみてください。 – Blackbam

答えて

0

NVM私はそれを考え出した - ちょうどあなたがすべてのサブフォルダを指定composer.json内での配列の操作を行います。

"autoload": { 
     "psr-4": { 
      "App\\": "app/", 
      "App\\Services\\": ["app/services","app/services/base","app/services/primary"], 
      "App\\Models\\": ["app/models","app/models/traits"], 
      "App\\Http\\Controllers\\": ["app/http/controllers","app/http/controllers/base","app/http/controllers/rest","app/http/controllers/rest/base"] 
     }, 

さらに優れたソリューションがまだ歓迎されています。

+0

あなたの回答を受け入れるように選択してください。 – Camilo

関連する問題