Автозагрузка PHP Composer не загружает класс: «Класс не найден»Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Автозагрузка PHP Composer не загружает класс: «Класс не найден»

Сообщение Anonymous »


Я столкнулся с проблемой в моем проекте PHP, из-за которой функция автозагрузки Composer работает неправильно. В частности, я получаю сообщение об ошибке «Класс App\Controllers\UserController не найден» при попытке доступа к маршрутам, определенным в моем приложении.
Я настроил автозагрузку в моем композиторе.json файл следующим образом:
"autoload": {
"psr-4": {
"App\\": "src/app/"
}
}


my-php-project/
├── src/
│ └── app/
│ ├── config/
│ ├── controllers/
│ │ └── UserController.php
│ ├── models/
│ │ └── User.php
│ └── views/
├── public/
│ ├── routes.php
│ └── router.php
│ └── index.php
├── vendor/
└── composer.json

Несмотря на запуск композитора dump-autoload и обеспечение того, чтобы классы соответствовали соглашениям об именах PSR-4, автозагрузка, похоже, не распознает мой класс UserController. Я подтвердил, что файл существует и содержит правильное объявление пространства имен.
Я также проверил вывод class_exists('App\Controllers\UserController'), и он возвращает ложь. Это указывает на то, что автозагрузчик настроен неправильно или где-то произошла неправильная конфигурация.
Может ли кто-нибудь помочь мне устранить эту проблему? Будем признательны за любые идеи и предложения!
Что я пробовал и чего ожидал
Я попробовал выполнить следующие действия, чтобы решить проблему с автозагрузкой:
  • Запустите композитор дамп-автозагрузку: Я выполнил эту команду, чтобы повторно создать файлы автозагрузки. Я ожидал, что он будет включать мой класс UserController и все остальные классы в каталоге src/app/.
  • Проверка объявления пространства имен: я проверил объявление пространства имен в файле UserController.php, чтобы убедиться, что оно соответствует пространству имен App\Controllers;.

    Использовать полное пространство имен в маршрутах: В моем файле Routes.php я использую полное пространство имен при создании экземпляра UserController, вот так:
$userController = new \App\Controllers\UserController();
Несмотря на все эти усилия, я по-прежнему получаю сообщение об ошибке «Класс App\Controllers\UserController не найден» при попытке получить доступ к моим маршрутам. Я ожидал, что после выполнения этих шагов автозагрузка будет работать правильно, но класс по-прежнему не распознается.
routes.php


Подробнее здесь: https://stackoverflow.com/questions/791 ... -not-found
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»