请查看我的应用程序结构的以下部分:
App
-Events
-Http
--Controllers
---Rest
-Services
--Base
--Primary
我想要做的是为所有服务使用名称空间App\Services
,为所有控制器使用名称空间App\Http\Controller
。
这就是我的应用程序加载Composer的方式:
"autoload": {
"psr-4": {
"App\\": "app/"
} }
这是我得到的例外:
(1/1)FatalThrowableError类' App \ Services \ CapabilityService'不 结果
CapabilityService
肯定存在,但它位于子文件夹Primary
内。有没有办法将文件从子目录自动加载到一个名称空间?如果是的话,有什么重要的理由不这样做吗?
这是CapabilityService:
namespace App\Services;
这是位置:
App/Services/Primary/CapabilityService
答案 0 :(得分:0)
Nvm我想出来了 - 只需在 "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
class superheroes{
const kal_el = 'Superman';
}
$instance = new superheroes;
echo $instance::kal_el;
更好的解决方案仍然受到欢迎。