Контроллеры Symfony 4 в подпапках выдают ошибку - PullRequest
0 голосов
/ 22 февраля 2019

Просто быстрый вопрос, почему я получаю это

Ожидается, что автозагрузчик определит класс "App \ Controller \ Admin \ AdminUnitController" в файле "/ home / glen / public_html /businessdirectory.glendev.local / продавец / композитор /../../ SRC / Controller / Admin / AdminUnitController.php».Файл был найден, но класса в нем не было, имя класса или пространство имен, вероятно, содержит опечатку в /home/glen/public_html/businessdirectory.glendev.local/config/services.yaml (загружается в ресурс "/ home /glen / public_html / businessdirectory.glendev.local / config / services.yaml ").

У меня есть AdminUnitController.php с именем класса AdminUnitController.Все было хорошо, пока я не решил, что хочу, чтобы административные контроллеры находились в отдельной подпапке, например:

Controller\Admin\AdminUnitController.php

1 Ответ

0 голосов
/ 22 февраля 2019

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

Я думаю, вы изменили структуру файла, но не адаптировали ваше пространство имен.

Учитывая файл src\Controller\Admin\AdminUnitController.php

Ваш класс должен выглядеть следующим образом (обратите особое внимание на пространство имен):

<?php

namespace App\Controller\Admin;

class AdminUnitController 
{
    // some code here
}

Тона самом деле это не поведение Symfony, с которым вы сталкиваетесь здесь, а то, что композитор работает с Symfony с автозагрузчиком и использует соглашение о загрузке классов PSR-4.

Для справки

1) см. composer.json, в котором есть эти строки:

{
  // some definitions here
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "App\\Tests\\": "tests/"
    }
  },
  // some more definitions here
}

2) см. Соглашение об именах PSR-4: и особенно примеры в их документации: https://www.php -fig.орг / PSR / PSR-4 / # 3 примеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...