Абстрактный класс: DataManager
Документация по плагину абстрактный класс: datamanager для DLE.
Краткое содержание:
Абстрактный класс DataManager, представляющий базовый функционал для менеджеров данных.
Описание:
Класс служит основой для реализации логики работы с данными, например, взаимодействия с базой данных. Конкретные реализации должны быть определены в наследниках этого класса.
Свойства
- protected $db
Методы
- public abbr()
- public connect()
- public createDir()
- public createLockFile()
- public defType()
- public deleteDir()
- public dirToArray()
- public getComparer()
- public getConfig()
- public getDb()
- public getPrefix()
- public getUserPrefix()
- public joinPaths()
- public nameArgs() - (deprecated)
- public normalizePath()
- public normalizeUrl()
- public sanitizeArrayInput()
- public sanitizeInput()
- public setDb()
- public toTranslit()
- private loadJsonConfig()
- private migrateOldConfig()
Подробности
- Путь: engine/inc/maharder/_includes/classes/DataManager.php
Свойства
protected $db : ?\db
Краткое содержание
Статическое свойство для хранения экземпляра базы данных.
Тип: db Экземпляр базы данных или null, если он не инициализирован.
Методы
abbr
static public abbr(string string, string sep = "_") : stringКраткое содержание
Создает аббревиатуру из переданной строки, используя указанное разделение слов.
Описание
Функция извлекает первую букву каждого слова из строки, разделенной указанным разделителем, и формирует из них аббревиатуру, преобразуя результат в верхний регистр.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $string | string | |
| $sep | string | '_' |
Ошибки:
| Тип | Описание |
|---|---|
| \InvalidArgumentException | Если один из параметров передан с некорректным типом. |
Возвращает:
stringАббревиатура, сформированная из начальных букв всех слов строки в верхнем регистре.
connect
static public connect() : voidКраткое содержание
Устанавливает подключение к базе данных, если оно еще не было установлено.
Описание
Если глобальная переменная DBHOST не определена, подключение
к базе данных конфигурируется через файл dbconfig.php в папке ENGINE_DIR.
В противном случае используется глобальная переменная $db.
Смотри так-же:
Возвращает:
voidcreateDir
static public createDir(string service = "DataManager", string module = "mhadmin", int permission = 0755, string ...paths) : boolКраткое содержание
Создаёт папку(и) по указанным путям с заданными правами доступа.
Описание
Для каждого предоставленного пути создаётся директория, если она ещё не существует.
При возникновении ошибки (например, неудачного создания директории)
ошибка логируется через LogGenerator::generate_log.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $service | string | 'DataManager' |
| $module | string | 'mhadmin' |
| $permission | int | 0755 |
| $paths | string |
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Бросается, если директория не может быть создана. |
| \JsonException|\Throwable | Может быть вызван, если ошибка логирования связана с кодировкой JSON. |
Возвращает:
boolВозвращает true, если все директории успешно созданы, иначе false.
createLockFile
static public createLockFile(string path) : mixedСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $path | string |
Ошибки:
| Тип | Описание |
|---|---|
| \Throwable | |
| \JsonException |
Возвращает:
mixeddefType
static public defType(mixed value, string type) : float|bool|int|stringКраткое содержание
Приводит значение к указанному типу, если возможно, используя набор фильтров.
Описание
Функция принимает значение и тип, преобразует значение к заданному типу с использованием соответствующего фильтра. Если преобразование невозможно, возвращается строковое представление значения.
Поддерживаемые типы:
double,float: преобразование в число с плавающей точкой.boolean,bool: преобразование в булево значение.integer,int,tinyint: преобразование в целое число.string: фильтрация как строка.
Если указанный тип отсутствует в карте типов, функция возвращает строковое представление значения.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $value | mixed | |
| $type | string |
Ошибки:
| Тип | Описание |
|---|---|
| \ValueError | Исключение может быть выброшено, если filter_var получит некорректный фильтр. |
Возвращает:
float|bool|int|stringПреобразованное значение в заданный тип, либо строковое представление значения, если преобразование невозможно или тип неизвестен.
deleteDir
static public deleteDir(string path) : voidКраткое содержание
Полностью удаляет директорию и все её содержимое, включая файлы и вложенные директории.
Описание
Эта функция рекурсивно обходит заданный путь, удаляя все файлы и вложенные директории, а затем удаляет саму директорию. Игнорирует защищённую директорию, путь к которой жёстко прописан в коде.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $path | string |
Ошибки:
| Тип | Описание |
|---|---|
| \UnexpectedValueException | В случае, если переданный путь не является директорией или не может быть прочитан. |
Возвращает:
voiddirToArray
static public dirToArray(string dir, mixed ..._ext) : arrayКраткое содержание
Преобразует указанную директорию в массив, содержащий все папки и файлы из неё.
Описание
Этот метод является обёрткой для функции dirToArray и вызывает её с переданными
параметрами. Используется для рекурсивного получения структуры директорий и файлов
в виде массива.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $dir | string | |
| $_ext | mixed |
Возвращает:
arrayАссоциативный массив, где ключами могут быть директории, а значения — содержимое этих директорий; файлы представлены в виде элементов массива.
getComparer
static public getComparer(mixed value) : stringКраткое содержание
Формирует строку, представляющую оператор сравнения и значение, основанную на переданном значении.
Описание
Эта функция анализирует начальный символ переданного значения, чтобы определить оператор сравнения (например, '=', '<', '>', 'LIKE', '<>', '<=', '>='). Если переданный оператор — '%', то значение оборачивается в проценты для использования в операциях LIKE. Если значение начинается с других специальных символов, оно интерпретируется и оператор определяется автоматически. При необходимости значение преобразуется в указанный тип.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $value | mixed |
Ошибки:
| Тип | Описание |
|---|---|
| \InvalidArgumentException | Если передано некорректное значение или тип недопустим для обработки. |
Возвращает:
stringСтрока, представляющая оператор сравнения и значение, готовая для использования в SQL- или других выражениях. Например: " = 'some_value'", "< 10", или " LIKE '%abc%'".
getConfig
static public getConfig(string codename, string|null path = null, string|null confName = null) : arrayКраткое содержание
Получает конфигурацию на основе указанного кода имени и пути к файлу JSON.
Описание
Метод сначала пытается загрузить конфигурацию из указанного или стандартного пути. Если файл не найден, он проверяет, указано ли устаревшее имя конфигурации для выполнения миграции данных. Если миграция невозможна, возвращается пустой массив.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $codename | string | |
| $path | string|null | null |
| $confName | string|null | null |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если содержимое JSON-файла некорректно при вызове loadJsonConfig. |
| \RuntimeException | Если ошибка возникает во время миграции конфигурации. |
Возвращает:
arrayВозвращает массив конфигурации. Если файл или миграция недоступны, возвращается пустой массив.
getDb
static public getDb() : \dbКраткое содержание
Возвращает объект подключения к базе данных.
Описание
Если подключение еще не было установлено, метод инициирует его вызовом метода connect().
Смотри так-же:
Возвращает:
\dbОбъект подключения к базе данных.
getPrefix
static public getPrefix() : stringКраткое содержание
Возвращает префикс, заданный в системе.
Возвращает:
stringПрефикс, используемый в системе.
getUserPrefix
static public getUserPrefix() : stringКраткое содержание
Получает префикс пользователя.
Описание
Данный метод возвращает значение константы USERPREFIX.
Возвращает:
stringПрефикс пользователя.
joinPaths
public joinPaths(string ...paths) : stringКраткое содержание
Объединяет несколько путей в один.
Описание
Объединение происходит слева направо. Пустые значения игнорируются. Возвращаемый путь нормализуется (лишние символы удаляются, контролируется корректность пути).
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $paths | string |
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если произошла ошибка при нормализации пути. |
Возвращает:
stringВозвращает объединённый и нормализованный путь.
nameArgs
(deprecated) - static public nameArgs(array|null args) : arrayКраткое содержание
Преобразует переданный массив в плоский массив ключ-значение, удаляя пустые значения.
Описание
Метод принимает массив (или null) и возвращает новый массив,
где все вложенные массивы разворачиваются в плоскую структуру.
Для элементов с числовыми ключами их значения назначаются в виде ключей и значений одновременно.
Пустые строки или null удаляются из итогового массива.
Устарело Устарело с версии PHP 8.1. Рекомендуется использовать альтернативные методы для работы с массивами.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $args | array|null |
Ошибки:
| Тип | Описание |
|---|---|
| \InvalidArgumentException | Если аргумент $args содержит некорректные данные. |
Возвращает:
arrayПлоский массив ключ-значение, где пустые строки и null исключены.
normalizePath
static public normalizePath(string path) : stringКраткое содержание
Нормализует путь, очищая его от лишних управляющих символов, точек и других нежелательных элементов.
Описание
Эта функция:
- Удаляет управляющие символы и преобразует все обратные слэши (
\) в прямые (/). - Убирает текущую (
.) и родительскую (..) директории из пути. - Удаляет корневой каталог (ROOT_DIR), если путь начинается с него.
- Гарантирует, что путь на Linux начинается с символа
/.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $path | string |
Ошибки:
| Тип | Описание |
|---|---|
| \InvalidArgumentException | Если константа ROOT_DIR не определена или имеет недопустимый тип. |
Возвращает:
stringНормализованный путь. Возвращается пустая строка, если входной путь содержит недопустимые символы (например, управляющие символы).
normalizeUrl
static public normalizeUrl(string url, array additionalQuery = []) : stringКраткое содержание
Нормализует указанный URL, добавляя дополнительные параметры запроса при необходимости.
Описание
Если URL содержит схему или начинается с двойного слэша, возвращается исходный URL без изменений.
Если URL не содержит схему, добавляется базовый URL, который формируется на основе конфигурации $config.
Если путь в URL является относительным, он также дополняется базовым URL.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $url | string | |
| $additionalQuery | array | [] |
Возвращает:
stringНормализованный URL.
sanitizeArrayInput
static public sanitizeArrayInput(mixed input = null, array|null flags = null) : mixedКраткое содержание
Очищает входные данные, массивы или значения, используя заданные флаги для фильтрации.
Описание
Если входные данные являются массивом, рекурсивно применяется функция очистки ко всем элементам массива. Если входные данные - одно значение, применяется очистка непосредственно к нему.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $input | mixed | null |
| $flags | array|null | null |
Возвращает:
mixedОчищенные данные. Если входные данные - массив, возвращается очищенный массив. Если данные не заданы, возвращается null.
sanitizeInput
static public sanitizeInput(mixed|null value = null, array|null flags = null) : string|nullКраткое содержание
Обрабатывает и фильтрует входящее значение на основе заданных флагов.
Описание
Эта функция принимает значение и массив флагов фильтрации, которые применяются
к значению последовательно, используя функцию filter_var.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $value | mixed|null | null |
| $flags | array|null | null |
Возвращает:
string|nullВозвращает отфильтрованное значение в виде строки или null в случае, если
значение или фильтрация недействительны.
setDb
static public setDb(\db|null db) : voidКраткое содержание
Устанавливает экземпляр базы данных.
Описание
Метод задает объект базы данных, который будет использоваться в дальнейшем.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $db | \db|null |
Возвращает:
voidtoTranslit
static public toTranslit(string input, bool lowercase = true) : stringКраткое содержание
Конвертирует строку в транслитерацию, форматирует её и удаляет нежелательные символы.
Описание
Эта функция выполняет трансформацию текста с учетом заданного функционала:
- Преобразует строку в транслит с использованием Transliterator или функции
totranslit(), если Transliterator недоступен. - Удаляет все символы, кроме букв, цифр и пробелов.
- Заменяет пробелы на символы подчеркивания.
- Приводит строку к нижнему регистру.
Функция упрощает создание URL-совместимых или SEO-оптимизированных строк из произвольных текстовых данных.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $input | string | |
| $lowercase | bool | true |
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если ни один из механизмов транслитерации, Transliterator или totranslit, недоступен или некорректен. |
Возвращает:
stringОтформатированная строка, приведенная к нижнему регистру, состоящая из символов латиницы, цифр и подчеркиваний.
loadJsonConfig
static private loadJsonConfig(string filePath) : arrayКраткое содержание
Загружает JSON-конфигурацию из указанного файла и возвращает её в виде массива.
Описание
Функция читает содержимое файла, парсит его как JSON и возвращает массив данных.
Если элементы данных не являются массивами, они проходят фильтрацию с использованием
FILTER_SANITIZE_FULL_SPECIAL_CHARS.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $filePath | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если произошла ошибка при парсинге JSON. |
| \RuntimeException | Если файл не существует или недоступен для чтения. |
Возвращает:
arrayАссоциативный массив, содержащий данные из файла JSON.
migrateOldConfig
static private migrateOldConfig(string codename, string confName, string configPath) : arrayКраткое содержание
Мигрирует старый файл конфигурации в новый JSON-формат.
Описание
Функция проверяет наличие старого конфигурационного файла, преобразует его содержимое в новый формат, сохраняет в указанной директории в формате JSON и удаляет старый файл. Если файл отсутствует или содержит некорректный формат данных, выполняются соответствующие обработки ошибок и возвращается пустой массив.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $codename | string | |
| $confName | string | |
| $configPath | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если возникают ошибки при кодировании JSON. |
| \RuntimeException | Если не удается записать файл или выполнить операции с файловой системой. |
| \Throwable |
Возвращает:
arrayВернет массив настроек, извлеченных из старого конфигурационного файла.