#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
. Конечно, это не очень хорошая практика.