Файл UsersHelper.php в Cotonti

Основное назначение файла UsersHelper.php:

Файл UsersHelper.php в системной папке Cotonti CMF предназначен для работы с данными пользователей, в частности для получения полного имени пользователя. Он представляет собой вспомогательный класс для обработки информации о пользователях и является частью более широкой системы работы с пользователями в фреймворке Cotonti.

Суть содержания кода:

Код в файле реализует один класс UsersHelper, который используется для получения полного имени пользователя. Формат этого имени определяется языковой строкой ресурса $R['users_full_name']. Класс также предоставляет метод для получения имени пользователя на основе различных данных, таких как имя, фамилия и отчество, если они заданы, а также имя пользователя.

Список классов:

  • UsersHelper — основной класс в файле, который предоставляет функциональность для получения полного имени пользователя.

Список методов и функций:

  • getFullName($user): string — метод, который возвращает полное имя пользователя. Он может принимать как данные пользователя, так и его ID. В зависимости от предоставленных данных, метод пытается составить полное имя пользователя, используя имя, отчество и фамилию, если они указаны. В случае, если данные о пользователе не предоставлены или они неполные, возвращается только имя пользователя или пустая строка.

Характеристика стиля PHP:

  • Использование строгой типизации: В файле используется директива declare(strict_types=1), что означает строгую типизацию в PHP. Это означает, что типы аргументов и возвращаемых значений строго проверяются, и ошибки типа будут приводить к исключениям.

  • Модульность: Код разделён на классы и методы, что делает его более удобным для повторного использования и тестирования.

  • Использование трейтов: В классе используется трейт GetInstanceTrait, что позволяет классу получать доступ к методу получения экземпляра класса (Singleton pattern). Это типичная практика для фреймворков, где требуется доступ к единственному экземпляру класса.

  • Использование глобальных функций: Например, cot_rc() — функция, которая возвращает отформатированную строку. Это указывает на использование глобальных утилит, которые позволяют упростить работу с шаблонами и локализацией.

  • Проверки данных: Перед выполнением основной логики метода getFullName, код выполняет несколько проверок для обеспечения целостности данных (например, проверка на пустоту данных пользователя).

  • Обработка данных с помощью условных операторов: Метод использует условия для выбора правильных полей данных пользователя (имя, фамилия, отчество), если они присутствуют в массиве данных.

UsersHelper.php в Cotonti CMF, который находится по адресу: system/users/UsersHelper.php

 

<?php

declare(strict_types = 1); // Устанавливает строгую типизацию для всех параметров и возвращаемых значений

namespace cot\users; // Определяет пространство имен для данного класса

use cot\traits\GetInstanceTrait; // Подключает трейты для использования метода getInstance

defined('COT_CODE') or die('Wrong URL'); // Проверяет, был ли файл вызван через правильный URL, иначе завершает выполнение

/**
 * Users repository
 * @package Cotonti
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
class UsersHelper // Определяет класс UsersHelper для работы с пользователями
{
    use GetInstanceTrait; // Использует трейт GetInstanceTrait для реализации паттерна Singleton

/**
 * Возвращает полное имя пользователя
 *
 * Формат полного имени зависит от языка и определяется строкой ресурса $R['users_full_name'].
 *
 * @param array|int $user Данные пользователя или ID пользователя
 * @return string
 */
    public function getFullName($user): string // Метод получения полного имени пользователя
    {
        if (empty($user)) { // Если передан пустой пользователь
            return ''; // Возвращаем пустую строку
        }

        if (function_exists('cot_user_full_name_custom')) { // Если существует пользовательская функция для получения полного имени
            return cot_user_full_name_custom($user); // Возвращаем результат выполнения пользовательской функции
        }

        if (is_numeric($user)) { // Если передан идентификатор пользователя (число)
            $userId = (int) $user; // Приводим его к целочисленному типу
            $user = UsersRepository::getInstance()->getById($userId); // Получаем данные пользователя по ID
        }

        if (empty($user) || !is_array($user) || empty($user['user_name'])) { // Если данные пользователя пусты или некорректны
            return ''; // Возвращаем пустую строку
        }

        $firstname = ''; // Инициализируем переменную для имени
        if (!empty($user['user_firstname'])) { // Если в данных есть имя пользователя
            $firstname = $user['user_firstname']; // Присваиваем имя
        } elseif (!empty($user['user_first_name'])) { // Иначе, если есть другое имя
            $firstname = $user['user_first_name']; // Присваиваем его
        }

        $middlename = ''; // Инициализируем переменную для отчества
        if (!empty($user['user_middlename'])) { // Если есть отчество
            $middlename = $user['user_middlename']; // Присваиваем отчество
        } elseif (!empty($user['user_middle_name'])) { // Иначе, если есть другое отчество
            $middlename = $user['user_middle_name']; // Присваиваем его
        }

        $lastname = ''; // Инициализируем переменную для фамилии
        if (!empty($user['user_lastname'])) { // Если есть фамилия
            $lastname = $user['user_lastname']; // Присваиваем фамилию
        } elseif (!empty($user['user_last_name'])) { // Иначе, если есть другая фамилия
            $lastname = $user['user_last_name']; // Присваиваем её
        }

        if ($firstname !== '' || $middlename !== '' || $lastname !== '') { // Если хотя бы одно из полей (имя, отчество, фамилия) не пустое
            return trim( // Возвращаем полное имя пользователя, с применением формата из ресурса
                cot_rc(
                    'users_full_name', // Используем ресурс для формирования полного имени
                    [
                        'firstname' => $firstname, // Подставляем имя
                        'middlename' => $middlename, // Подставляем отчество
                        'lastname' => $lastname, // Подставляем фамилию
                        'name' => $user['user_name'] // Подставляем логин пользователя
                    ],
                )
            );
        }

        return $user['user_name']; // Если нет данных о фамилии, имени или отчестве, возвращаем только логин пользователя
    }
}

 

4 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 27.01.2025 23:25
  • Последнее обновление: 27.01.2025 23:25