AbstractBaseModel¶
Описание: Абстрактный базовый класс для всех моделей Предоставляет общую функциональность для моделей данных: валидацию, сериализацию, работу с атрибутами PHP 8.3. Реализует интерфейс BaseModel и предоставляет готовые методы для работы с данными API Kinopoisk.dev. Основные возможности: - Автоматическая валидация на основе атрибутов Validation - Сериализация/десериализация с поддержкой JSON - Обработка конфиденциальных полей - Безопасное извлечение данных из массивов - Создание копий объектов с изменениями
С версии: 1.0.0
Версия: 1.0.0
Пример:
См. также:
\KinopoiskDev\Models\BaseModel
: Интерфейс базовой модели\KinopoiskDev\Attributes\Validation
: Атрибут валидации\KinopoiskDev\Attributes\Sensitive
: Атрибут конфиденциальных полей\KinopoiskDev\Services\ValidationService
: Сервис валидации
fromJson()
¶
Описание: Создает объект из JSON строки Десериализует JSON строку в объект модели. Парсит JSON, создает массив данных и использует fromArray для создания объекта.
Десериализует JSON строку в объект модели с обработкой ошибок парсинга и валидации данных.
Параметры:
$json
(string): JSON строка с данными объекта
Возвращает: static
Экземпляр модели с заполненными данными
Исключения:
ValidationException
: При ошибках парсинга JSON или валидации данных\JsonException
: При ошибках парсинга JSON
Пример:
PHP | |
---|---|
fromArray()
¶
Описание: Создает экземпляр модели из массива данных Фабричный метод для создания объекта модели из ассоциативного массива, полученного из API ответа. Должен обрабатывать маппинг полей API на свойства модели и выполнять базовую валидацию данных.
Создает экземпляр модели из массива данных с использованием рефлексии. Автоматически определяет параметры конструктора и передает соответствующие значения из массива данных. Поддерживает значения по умолчанию.
Возвращает: static
Экземпляр модели с заполненными данными
Исключения:
\ReflectionException
: При ошибках рефлексии\LogicException
: При попытке создания абстрактного классаValidationException
: При некорректных данных
Пример:
PHP | |
---|---|
getDataValue()
¶
Описание: Безопасно извлекает значение из массива данных Универсальный метод для безопасного извлечения значений из массива с поддержкой значения по умолчанию при отсутствии ключа.
Параметры:
$key
(string): Ключ для поиска в массиве$default
(mixed): Значение по умолчанию при отсутствии ключа
Возвращает: mixed
Значение из массива или значение по умолчанию
Пример:
PHP | |
---|---|
getArrayValue()
¶
Описание: Безопасно извлекает массив из данных Извлекает значение из массива данных и гарантирует, что результат будет массивом. Возвращает пустой массив, если ключ отсутствует или значение не является массивом.
Параметры:
$key
(string): Ключ для поиска в массиве
Возвращает: array<mixed>
Массив значений или пустой массив
Пример:
PHP | |
---|---|
getStringValue()
¶
Описание: Безопасно извлекает строку из данных Извлекает строковое значение из массива данных с поддержкой значения по умолчанию. Возвращает null, если значение не является строкой.
Параметры:
$key
(string): Ключ для поиска в массиве$default
(string|null): Значение по умолчанию при отсутствии ключа
Возвращает: string|null
Строковое значение или null
Пример:
PHP | |
---|---|
getIntValue()
¶
Описание: Безопасно извлекает целое число из данных Извлекает целочисленное значение из массива данных с поддержкой значения по умолчанию. Преобразует числовые строки в целые числа.
Параметры:
$key
(string): Ключ для поиска в массиве$default
(int|null): Значение по умолчанию при отсутствии ключа
Возвращает: int|null
Целочисленное значение или null
Пример:
PHP | |
---|---|
getBoolValue()
¶
Описание: Безопасно извлекает логическое значение из данных Извлекает логическое значение из массива данных с поддержкой значения по умолчанию. Возвращает null, если значение не является boolean.
Параметры:
$key
(string): Ключ для поиска в массиве$default
(bool|null): Значение по умолчанию при отсутствии ключа
Возвращает: bool|null
Логическое значение или null
Пример:
PHP | |
---|---|
with()
¶
Описание: Создает копию объекта с измененными свойствами Иммутабельный метод для создания нового экземпляра объекта с измененными значениями свойств. Полезен для создания вариаций объекта без изменения оригинала.
Возвращает: static
Новый экземпляр с примененными изменениями
Исключения:
ValidationException
: При ошибках валидации нового объекта
Пример:
PHP | |
---|---|
toArray()
¶
Описание: Преобразует объект в массив Сериализует объект модели в ассоциативный массив для передачи в API или сохранения в базу данных. Поддерживает контроль включения null значений.
Преобразует объект в ассоциативный массив с поддержкой вложенных объектов, enum значений и конфиденциальных полей. Автоматически обрабатывает атрибуты ApiField для маппинга имен полей.
Параметры:
$includeNulls
(bool): Включать ли null значения в результат (по умолчанию true)
Возвращает: array<string, mixed>
Ассоциативный массив с данными объекта
Пример:
PHP | |
---|---|
getApiFieldName()
¶
Описание: Определяет имя поля для API на основе атрибутов Извлекает имя поля для API из атрибута ApiField или возвращает оригинальное имя свойства, если атрибут не задан.
Параметры:
$property
(ReflectionProperty): Свойство для анализа
Возвращает: string
Имя поля для использования в API
processArrayValue()
¶
Описание: Обрабатывает значения массива для сериализации Рекурсивно обрабатывает элементы массива, преобразуя объекты BaseModel в массивы и enum значения в их скалярные представления.
Параметры:
$value
(array): Массив для обработки $includeNulls
(bool): Включать ли null значения в результат
Возвращает: array<mixed>
Обработанный массив
validate()
¶
Описание: Валидирует данные модели Проверяет корректность данных модели согласно бизнес-правилам и ограничениям. Может использовать атрибуты Validation для автоматической валидации свойств.
Валидирует объект с использованием ValidationService и атрибутов Validation. Проверяет все свойства объекта на соответствие заданным правилам валидации.
Возвращает: bool True
если валидация прошла успешно
Исключения:
ValidationException
: При ошибках валидации с детальным описанием проблем
Пример:
PHP | |
---|---|
getValidator()
¶
Описание: Получает экземпляр валидатора Возвращает статический экземпляр ValidationService для переиспользования между объектами одного класса. Создает новый экземпляр при первом вызове.
Возвращает: ValidationService
Экземпляр сервиса валидации
equals()
¶
Описание: Сравнивает текущий объект с другим Выполняет глубокое сравнение объектов на основе их данных. Объекты считаются равными, если все их свойства имеют одинаковые значения.
Параметры:
$other
(BaseModel): Объект для сравнения
Возвращает: bool True
если объекты равны, false в противном случае
Пример:
PHP | |
---|---|
getHash()
¶
Описание: Возвращает хэш объекта Генерирует SHA256 хэш на основе JSON представления объекта. Полезен для кэширования, сравнения версий объектов или создания уникальных идентификаторов.
Возвращает: string SHA256
хэш объекта
Пример:
PHP | |
---|---|
toJson()
¶
Описание: Возвращает JSON представление объекта Сериализует объект модели в JSON строку для передачи по сети или сохранения в файл. Поддерживает настройку флагов кодирования JSON.
Сериализует объект в JSON строку с автоматической фильтрацией конфиденциальных полей согласно атрибутам Sensitive.
Параметры:
$flags
(int): Флаги для json_encode (по умолчанию JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE)
Возвращает: string JSON
строка с данными объекта
Исключения:
ValidationException
: При ошибке кодирования JSON
Пример:
PHP | |
---|---|
filterSensitiveForJson()
¶
Описание: Фильтрует конфиденциальные поля для JSON вывода Удаляет поля, помеченные атрибутом Sensitive с hideInJson=true, из массива данных перед JSON сериализацией.
Возвращает: array<string, mixed>
Отфильтрованные данные без конфиденциальных полей
isEmpty()
¶
Описание: Проверяет, является ли объект пустым Определяет, содержит ли объект какие-либо непустые данные. Исключает null значения, пустые строки и пустые массивы.
Возвращает: bool True
если объект не содержит данных, false в противном случае
Пример:
PHP | |
---|---|
getFilledProperties()
¶
Описание: Возвращает только заполненные свойства Возвращает ассоциативный массив, содержащий только свойства с непустыми значениями (исключая null, пустые строки и массивы).
Возвращает: array<string, mixed>
Массив непустых свойств
Пример: