CurrentUser


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

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

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

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

isAuthenticated(): bool

Возвращает true, если в текущем запросе доступен авторизованный пользователь:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

php
$displayName = CurrentUser::meta('display_name');
$city = CurrentUser::meta('city');

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

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

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

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