Laravel/Lumen PSR-4:如果我将 类 放入子目录,那么我必须使用不同的命名空间吗?
Laravel/Lumen PSR-4: If I put classes into subdirectories do I have to use different namespaces then?
查看我的应用程序结构的以下部分:
App
-Events
-Http
--Controllers
---Rest
-Services
--Base
--Primary
我想做的是对所有服务使用命名空间 App\Services
,对所有控制器使用命名空间 App\Http\Controller
。
这是我的应用程序加载 Composer 的方式:
"autoload": {
"psr-4": {
"App\": "app/"
} }
这是我得到的异常:
(1/1) FatalThrowableError Class 'App\Services\CapabilityService' not
found
CapabilityService
确实存在,但它在子文件夹 Primary
中。有没有办法将子目录中的文件一起自动加载到一个命名空间中?如果是,如何以及是否有任何重要理由不这样做?
这是能力服务:
namespace App\Services;
这是位置:
App/Services/Primary/CapabilityService
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"]
},
仍然欢迎更好的解决方案。
查看我的应用程序结构的以下部分:
App
-Events
-Http
--Controllers
---Rest
-Services
--Base
--Primary
我想做的是对所有服务使用命名空间 App\Services
,对所有控制器使用命名空间 App\Http\Controller
。
这是我的应用程序加载 Composer 的方式:
"autoload": {
"psr-4": {
"App\": "app/"
} }
这是我得到的异常:
(1/1) FatalThrowableError Class 'App\Services\CapabilityService' not found
CapabilityService
确实存在,但它在子文件夹 Primary
中。有没有办法将子目录中的文件一起自动加载到一个命名空间中?如果是,如何以及是否有任何重要理由不这样做?
这是能力服务:
namespace App\Services;
这是位置:
App/Services/Primary/CapabilityService
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"]
},
仍然欢迎更好的解决方案。