Автозагрузка приложений Slim

#php #slim #psr-4

#php #slim #psr-4

Вопрос:

Я новичок в приложениях REST и Slim.

Мне не удалось автоматически загрузить некоторые классы:

Тип: RuntimeException Сообщение: Вызываемый пользовательский контроллер не существует Файл: /var/www/fdes/vendor/slim/slim/Slim/CallableResolver.php Строка: 90

#0 /var/www/fdes/vendor/slim/slim/Slim/CallableResolver.php (61): SlimCallableResolver->resolveCallable(‘Пользовательский контроллер’, ‘логин’)
#1 /var/www/fdes/vendor/slim/slim/Slim/CallableResolverAwareTrait.php (45): SlimCallableResolver-> разрешить(‘UserController:…’)
#2 /var/www/fdes/vendor/slim/slim/Slim/Route.php (351): SlimRoutable->resolveCallable(‘Пользовательский контроллер:…’)

composer.json:

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

Структура каталогов:

 fdesappapiControllersUserUserController.php
  

UserController.php:

 namespace ApiControllersUser;

use SlimHttpRequest;
use SlimHttpResponse;
use RespectValidationValidator as v;

class UserController extends BaseController {

    protected $db;
  

Ребята, не могли бы вы сообщить мне, чего мне здесь не хватает?

Спасибо, ребята!

Ответ №1:

Я думаю, что ваше пространство имен вашего контроллера неверно. Пространство имен должно быть namspace AppApiControllersUser .

Кроме того, было бы хорошо, если бы ваша структура папок была идентична вашему пространству имен. Так api должно быть Api и т.д.

Комментарии:

1. Да, но помните, что пространства имен в php не чувствительны к регистру, так что это означает, что вы можете иметь каталог api и использовать пространство имен API или Api . Конечно, это не очень хорошая практика.