Подскажите, где создать объект пользователя, чтобы данные были доступны во всех роутах. Делаю сайт, в основе которого MVC-каркас, c единой точкой входа. Пытался создавать массив с данными пользователя в текущей сессии во фронт контроллере, но даже на главной странице переменная $user undefined. Пытался делать переменную глобальной — толку ноль… Как сделать чтобы к массиву $user был доступ везде по сайту, создав объект в одном месте? Или же всё-таки придется создавать везде, где нужны буду данные пользователя?
Фронт контроллер:
/* View Errors */
ini_set("display_errors", 1);
error_reporting(E_ALL);
/* Files Connect */
define ("ROOT", dirname(__FILE__));
require_once ROOT."/components/Autoload.php";
session_start();
$userObject = new User();
$User= $userObject->createUser();
$router = new Router();
$router->run();
?>
Это уже в классе User:
public function createUser() {
if (isset($_SESSION['user_id'])) {
$db = Db::getConnection();
$result = $db->prepare("SELECT * FROM user WHERE id = :id");
$result->bindParam(":id", $_SESSION['user_id']);
$result->execute();
$data = $result->fetch(PDO::FETCH_ASSOC);
$user = null;
if (count($data)>0) {
$user = $data;
}
return $user;
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей