混淆类加载异常Symfony 4



在配置我的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/"]
}
}
}

最新更新