Файл 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']; // Если нет данных о фамилии, имени или отчестве, возвращаем только логин пользователя
}
}
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 27.01.2025 23:25
- Последнее обновление: 27.01.2025 23:25