Непонятное исключение загрузки класса Symfony 4 - PullRequest
0 голосов
/ 07 мая 2020

Во время настройки моего symfony приложения у меня возникла ошибка из-за неправильных пространств имен для моих контроллеров, но я уверен, что этот файл существует по пути, который отображался в сообщении об ошибке, и моя конфигурация кажется правильной

Ожидалось найти класс «App \ Controller \ AccountController» в файле «/ var / www/html/src/App/Controller/AccountController.php» при импорте сервисов из ресурса «../src/App/*», но он не был найден! Проверьте префикс пространства имен, используемый с ресурсом в / var / www/html/config/services.yaml (который загружен в ресурс "/var/www/html/config/services.yaml").

/ var / www/html/config/services.yaml file

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;

1 Ответ

0 голосов
/ 08 мая 2020

Похоже, вы используете автозагрузчик в стиле psr-0, а не psr-4.

Вам нужно отредактировать composer. json, например:

{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

и переместить каталог вашего контроллера прямо в sr c

или

, вы можете установить это в свой composer. json

{
    "autoload": {
        "psr-0": {
            "App\\": ["src/"]
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...