CurrentUser


CurrentUser предоставляет данные пользователя, авторизованного в текущем запросе.

Поддерживает

  • проверку авторизации
  • получение основных данных пользователя
  • получение роли пользователя
  • получение пользовательских метаданных
  • указание значения по умолчанию

Класс статический и автоматически доступен после запуска CMS. Создавать его экземпляр не нужно.

Быстрый старт

php
if (CurrentUser::isAuthenticated()) {
    $userId = CurrentUser::get('id');
    $login = CurrentUser::get('login');
}

Для неавторизованного посетителя isAuthenticated() возвращает false.

Проверка авторизации

isAuthenticated(): bool

Возвращает true, если пользователь авторизован:

php
if (!CurrentUser::isAuthenticated()) {
    return;
}

Данные пользователя

get(string $name, mixed $default = null): mixed

Возвращает значение поля текущего пользователя:

php
$email = CurrentUser::get('email');

Вторым аргументом можно передать значение по умолчанию:

php
$avatar = CurrentUser::get(
    'avatar',
    '/assets/images/avatar.svg'
);

Если пользователь не авторизован, поле отсутствует или содержит null, метод возвращает значение по умолчанию.

Основные поля

Поле Тип Описание
id int Идентификатор пользователя.
login string Логин пользователя.
email string Адрес электронной почты.
register string Дата регистрации.
role string Роль пользователя.
avatar string Путь к изображению аватара.

Метаданные пользователя

meta(string $name, mixed $default = null): mixed

Возвращает значение пользовательского метаполя:

php
$name = CurrentUser::meta('name');
$phone = CurrentUser::meta('phone');

Для отсутствующего метаполя можно указать значение по умолчанию:

php
$displayName = CurrentUser::meta(
    'name',
    CurrentUser::get('login', 'Пользователь')
);

Если пользователь не авторизован или метаполе отсутствует, метод возвращает значение по умолчанию.

Важные замечания

  • перед получением данных проверяйте isAuthenticated()
  • набор метаданных зависит от настроек пользователя и установленных модулей
  • класс предоставляет данные только пользователя текущего запроса
  • изменение полученного значения не сохраняет его в CMS
  • создавать экземпляр CurrentUser не нужно