在配置我的symfony应用程序时,我得到了一个错误的控制器命名空间的错误信息,但我确信该文件存在于错误信息中显示的路径中,而我的配置似乎是正确的。
从资源".srcApp*"导入服务时,希望在文件 "varwwwhtmlsrcAppControllerAccountController.php "中找到类 "App/Controller/AccountController",但没有找到!在 "varwwwhtmlsrcAppControllerAccountController.php "中检查资源使用的命名空间前缀。检查在varwwwhtmlconfigservices.yaml中与资源一起使用的命名空间前缀(它被加载在资源 "varwwwhtmlconfigservices.yaml "中)。
在资源 "varwwwhtmlconfigservices.yaml "中加载。
services:
_defaults:
autowire: true
autoconfigure: true
App\:
resource: '../src/App/*'
exclude: '../src/App/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
App\Controller\:
resource: '../src/App/Controller'
tags: ['controller.service_arguments']
composer.json
"autoload": {
"psr-4": {
"App\\": "src/App/",
"": "src/"
}
}
文件夹结构
/src:
/App:
/Controller:
AccountController.php
控制器名称空间
namespace App\Controller;
看来你使用的是psr-0风格的自动加载器,而不是psr-4。
你必须编辑你的composer.json,像这样。
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
然后把你的Controller目录直接移到src
或
你可以在你的composer.json中设置这个。
{
"autoload": {
"psr-0": {
"App\\": ["src/"]
}
}
}