gpt4 book ai didi

php - Laravel/流明 PSR-4 : If I put classes into subdirectories do I have to use different namespaces then?

转载 作者:行者123 更新时间:2023-12-04 17:02:02 25 4
gpt4 key购买 nike

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

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

我想做的是使用命名空间 App\Services对于所有服务和命名空间 App\Http\Controller对于所有 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"]
},

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

关于php - Laravel/流明 PSR-4 : If I put classes into subdirectories do I have to use different namespaces then?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47269026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com