Я пытаюсь подготовить простое пустое приложение с Slim3 и композитором.
Это мой фронт-контроллер:
<?php
require '../vendor/autoload.php';
$config=[];
$config['displayErrorDetails'] = true;
$config['addContentLengthHeader'] = false;
$app = new \Slim\App(['settings' => $config]);
foreach(glob("../app/dependencies/*.php") as $dependency){
$dependency=include $dependency;
$dependency($app);
}
foreach(glob("../app/middleware/*.php") as $middleware){
$middleware=include $middleware;
$middleware($app);
}
foreach(glob("../app/routes/*.php") as $route){
$route=include $route;
$route($app);
}
$app->run();
И у меня есть уникальный файл маршрута:
<?php
return function (\Slim\App $app){
$app->get('/', function (Request $request, Response $response) {
$response->getBody()->write("Hello");
return $response;
});
};
Когда я запускаю приложение, я получаю сообщение об ошибке:
Аргумент 1, переданный в Closure :: {closure} () должен быть экземпляром Request, экземпляром Slim \Http \ Request уделено
Я должен добавить это "использование" в мой файл маршрута:
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
Почему php использует неправильный (Slim) класс для запроса и ответа?Неужели я должен их префикс для каждого файла контроллера?