Массив с данными пользователя в сессии PHP MVC

317
13 марта 2017, 12:00

Подскажите, где создать объект пользователя, чтобы данные были доступны во всех роутах. Делаю сайт, в основе которого 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;
    }
}
READ ALSO
Помогите исправить ошибку в коде pdo

Помогите исправить ошибку в коде pdo

Начал писать разные функции для сокращения кода, и вот на что наткнулсяНаписал такую функцию:

312
Активные ссылки в меню Opencart 2

Активные ссылки в меню Opencart 2

Доброго дняЕсть вопрос насчет opencart 2

388
Microtime в PHP?

Microtime в PHP?

Микросекунда это 1/миллионная секунды, но в php при microtime(true) никогда не удавалось увидеть значение больше 9999 после точкиЭто внутреннее ограничение...

381
Оценка кода и что нужно знать джуниору?

Оценка кода и что нужно знать джуниору?

Здравствуйте! Я самоучка С++, и меня интересует, какие знания мне нужны, чтобы меня приняли на работуИ ещё вопрос: хватит ли моих нынешних знаний?...

360