Читаю код один:
namespace MyProject\Controllers;
use MyProject\Models\Users\User;
use MyProject\Services\UsersAuthService;
use MyProject\View\View;
abstract class AbstractController
{
/** @var View */
protected $view;
/** @var User|null */
protected $user;
public function __construct()
{
$this->user = UsersAuthService::getUserByToken();
$this->view = new View(__DIR__ . '/../../../templates');
$this->view->setVar('user', $this->user);
}
}
роут автора
return [
'~^users/login~' => [\MyProject\Controllers\UsersController::class, 'login'],
'~^$~' => [\MyProject\Controllers\MainController::class, 'main']
];
автор логинит пользователя
namespace MyProject\Controllers;
use MyProject\Exceptions\InvalidArgumentException;
use MyProject\Models\Users\User;
use MyProject\Models\Users\UserActivationService;
use MyProject\Services\EmailSender;
use MyProject\Services\UsersAuthService;
class UsersController extends AbstractController
{
/** @var View */
private $view;
public function __construct()
{
$this->view = new View(__DIR__ . '/../../../templates');
}
public function login()
{
if (!empty($_POST)) {
try {
$user = User::login($_POST);
UsersAuthService::createToken($user);
header('Location: /');
exit();
} catch (InvalidArgumentException $e) {
$this->view->renderHtml('users/login.php', ['error' => $e->getMessage()]);
return;
}
}
$this->view->renderHtml('users/login.php');
}
}
сюда попадаем
namespace MyProject\Controllers;
use MyProject\Models\Articles\Article;
class MainController extends AbstractController
{
public function main()
{
}
}
Ну и я залогинился и меня перекинуло по '/' и набираю '/users/login' и куда я попадаю, где тут контроль авторизованного?