Laravel/Lumen PSR-4:如果我把类放到子目录中,我必须使用不同的命名空间



查看我的应用程序结构的以下部分:

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

我想做的是对所有服务使用命名空间AppServices,对所有控制器使用命名空间AppHttpController

这是我的应用程序加载 Composer 的方式:

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

这是我得到的异常:

(1/1( 致命可抛掷错误类"应用\服务\功能服务"不是 发现

CapabilityService肯定存在,但它在子文件夹中 Primary .有没有办法将文件从子目录自动加载到一个命名空间中?如果是,如何以及是否有任何重要理由不这样做?

这是功能服务:

namespace AppServices;

这是位置:

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"]
        },

更好的解决方案仍然受欢迎。

最新更新