在配置我的symfony应用程序时,我收到了一个关于控制器名称空间错误的错误,但我确信该文件存在于错误消息中显示的路径中,并且我的配置似乎是正确的
从资源"../src/App/*"导入服务时,应在文件"/var/www/html/src/App/Controller/AccountController.php"中找到类"App\Controller\AccountController",但未找到!检查/var/www/html/config/services.yaml中与资源一起使用的命名空间前缀(加载在资源"/var/www/html/config/service.yaml"中(。
/var/www/html/config/services.yaml文件
services:
_defaults:
autowire: true
autoconfigure: true
App:
resource: '../src/App/*'
exclude: '../src/App/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
AppController:
resource: '../src/App/Controller'
tags: ['controller.service_arguments']
composer.json
"autoload": {
"psr-4": {
"App\": "src/App/",
"": "src/"
}
}
文件夹结构
/src:
/App:
/Controller:
AccountController.php
控制器命名空间
namespace AppController;
您使用的似乎是psr-0风格的自动加载器,而不是psr-4。
您必须编辑您的composer.json,如:
{
"autoload": {
"psr-4": {
"App\": "src/"
}
}
}
并将您的控制器目录直接移动到src 中
或
您可以将其设置到您的composer.json 中
{
"autoload": {
"psr-0": {
"App\": ["src/"]
}
}
}