Возникла проблема с приложением Slim. Я очень плохо знаком с программированием в стиле MVC и, особенно, с Slim Framework. Дело в том, что я пытаюсь сделать простую (get-post) маршрутизацию с передачей данных (в частности, регистрация нового пользователя). Итак, мой файл index. php выглядит следующим образом:
use ...
use ...
$app = new \Slim\App((['settings' => ['displayErrorDetails' => true]]));
$app->get('/auth/signup', 'App\Controllers\PagesController:getSignUp')->setName('auth.signup');
$app->post('/auth/signup', 'App\Controllers\PagesController:postSignUp');
Структура проекта: Project Folder - App (Controllers (PageController. php, Validator, et c), Models (User . php, UserManagerPDO. php et c), Views (страницы (файлы веток здесь), scripts ()) - vendor - index. php - composer. json - composer. Блокировка. Часть файла PagesController:
class PagesController extends Controller
{
public function getSignUp($request, $response)
{
if (!Validator::isConnected())
{
return $this->render($response, 'pages/signUp.twig');
}
else
{
return $this->redirect($response, 'homepage', 200);
}
При использовании этого метода slim показывает мне ошибку RuntimeException и говорит, что PagesController не существует. Я пробовал поискать в Google и выяснил, что проблема может быть в пространстве имен. Поэтому я также включаю «верхнюю» часть моего файла контроллера:
<?php
namespace App\Controllers;
use App\Models\User;
use App\Models\UserManagerPDO;
use \PDO;
use App\Controllers\Validator;
И мой файл composer. json:
{
"autoload": {
"psr-4":{
"App\\":"app/"
}
},
"require": {
"slim/slim": "3.5",
"slim/twig-view": "2.1",
"slim/csrf": "0.7.0"
}
}
Я пробовал много разных способов повторная сборка с composer (install и dump-autoload), но они не помогли. Очень хочется бороться с этой проблемой, потому что большая часть приложения уже написана, и я сталкиваюсь только с такого рода проблема маршрутизации (смешная). Заранее спасибо. PS извините за мой не родной анг Li sh. PPS my git (если вам нравится) https://github.com/Basil-779/projects.git