MeiliPersonEntity
Описание: Сущность персоны для индексации в поисковой системе MeiliSearch Этот класс представляет структуру данных персоны для индексации в поисковой системе MeiliSearch. Содержит основную информацию о персоне, включая биографические данные, профессиональную информацию и места рождения/смерти. Все свойства являются для обеспечения неизменности данных.
С версии: 1.0.0
Версия: 1.0.0
См. также:
\KinopoiskDev\Enums\PersonSex: Enum для определения пола персоны\KinopoiskDev\Models\Person: Основная модель персоны
__construct()
Описание: Создает новый экземпляр сущности персоны для MeiliSearch Конструктор инициализирует все свойства персоны значениями по умолчанию. Все параметры являются именованными для удобства использования и поддержки автоматической генерации объектов из массивов данных API.
С версии: 1.0.0
Параметры:
$id(int): Уникальный идентификатор персоны в базе данных$name(string|null): Имя персоны на русском языке (может быть null для неизвестных персон)$enName(string|null): Имя персоны на английском языке (может быть null если отсутствует перевод)$photo(string|null): URL фотографии персоны (может быть null если фото недоступно)$sex(PersonSex|null): Пол персоны из enum PersonSex (может быть null если не определен)$growth(int|null): Рост персоны в сантиметрах (может быть null если неизвестен)$birthday(string|null): Дата рождения в формате ISO 8601 (может быть null если неизвестна)$death(string|null): Дата смерти в формате ISO 8601 (может быть null если персона жива или дата неизвестна)$age(int|null): Возраст персоны в годах (может быть null если невозможно вычислить)$birthPlace(\KinopoiskDev\Models\BirthPlace[]): Массив мест рождения персоны (пустой массив по умолчанию)$deathPlace(\KinopoiskDev\Models\DeathPlace[]): Массив мест смерти персоны (пустой массив по умолчанию)$profession(PersonProfession[]|null): Массив профессий персоны (может быть null если профессии неизвестны)
fromArray()
Описание: Создает объект MeiliPersonEntity из массива данных API Фабричный метод для создания экземпляра класса MeiliPersonEntity из массива данных, полученных от API Kinopoisk.dev. Безопасно обрабатывает отсутствующие значения, устанавливая их в null или пустые массивы.
Возвращает: static Новый экземпляр класса MeiliPersonEntity
См. также:
MeiliPersonEntity::toArray: () Для обратного преобразования в массив
validate()
Описание: Валидирует данные модели
Возвращает: bool True если данные валидны
getBestName()
Описание: Возвращает наиболее подходящее имя персоны Определяет и возвращает наиболее подходящее имя персоны, отдавая предпочтение русскому имени, если оно доступно. Если русское имя отсутствует, возвращает английское имя.
Возвращает: string|null Наиболее подходящее имя персоны или null, если имя не задано
getPhotoUrl()
Описание: Возвращает URL фотографии персоны Предоставляет прямой доступ к URL-адресу фотографии персоны. Может использоваться для отображения изображения персоны в интерфейсе.
Возвращает: string|null URL-адрес фотографии или null, если фотография отсутствует
getRoleCategory()
Описание: Возвращает категории ролей персоны Определяет все категории профессий персоны на основе проверки различных типов профессий. Использует современный подход с array_filter для оптимизации производительности и избежания повторяющихся if-конструкций. Метод создает карту соответствия между значениями enum профессий и результатами методов проверки, затем фильтрует только те профессии, которые присутствуют у данной персоны.
С версии: 1.0.0
Версия: 1.0.0
Возвращает: array<string> Массив строковых значений (value) enum PersonProfession для активных профессий персоны
См. также:
PersonProfession: Enum с возможными категориями профессийself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isActor()
Описание: Проверяет, является ли персона актером Определяет, является ли данная персона актером на основе значений в массиве профессий. Метод выполняет строгую проверку (с использованием оператора ===) наличия строкового значения enum PersonProfession::ACTOR в массиве profession. Возвращает true, если среди профессий персоны найдена профессия актера.
Возвращает: bool true, если персона является актером, false в противном случае
См. также:
PersonProfession::ACTOR: Enum значение профессии актераself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isDirector()
Описание: Проверяет, является ли персона режиссером Метод проверяет наличие профессии "режиссер" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::DIRECTOR среди всех профессий персоны.
Возвращает: bool true, если персона является режиссером, false в противном случае
См. также:
PersonProfession::DIRECTOR: Константа для профессии режиссераself::isActor: () Проверка, является ли персона актеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isWriter()
Описание: Проверяет, является ли персона сценаристом Метод проверяет наличие профессии "сценарист" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::WRITER среди всех профессий персоны.
Возвращает: bool true, если персона является сценаристом, false в противном случае
См. также:
PersonProfession::WRITER: Константа для профессии сценаристаself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isProducer()
Описание: Проверяет, является ли персона продюсером Метод проверяет наличие профессии "продюсер" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::PRODUCER среди всех профессий персоны.
Возвращает: bool true, если персона является продюсером, false в противном случае
См. также:
PersonProfession::PRODUCER: Константа для профессии продюсераself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isComposer()
Описание: Проверяет, является ли персона композитором Метод проверяет наличие профессии "композитор" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::COMPOSER среди всех профессий персоны.
Возвращает: bool true, если персона является композитором, false в противном случае
См. также:
PersonProfession::COMPOSER: Константа для профессии композитораself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isOperator()
Описание: Проверяет, является ли персона оператором Метод проверяет наличие профессии "оператор" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::OPERATOR среди всех профессий персоны.
Возвращает: bool true, если персона является оператором, false в противном случае
См. также:
PersonProfession::OPERATOR: Константа для профессии оператораself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isDesigner()
Описание: Проверяет, является ли персона художником (постановщиком) Метод проверяет наличие профессии "художник" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::DESIGN среди всех профессий персоны.
Возвращает: bool true, если персона является художником, false в противном случае
См. также:
PersonProfession::DESIGN: Константа для профессии художникаself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isEditor()
Описание: Проверяет, является ли персона монтажёром Метод проверяет наличие профессии "монтажер" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::EDITOR среди всех профессий персоны.
Возвращает: bool true, если персона является монтажёром, false в противном случае
См. также:
PersonProfession::EDITOR: Константа для профессии монтажёраself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isVoiceActor: () Проверка, является ли персона актером дубляжаself::isOtherProfession: () Проверка других профессий персоны
isVoiceActor()
Описание: Проверяет, является ли персона актёром дубляжа Метод проверяет наличие профессии "актер дубляжа" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::VOICE_ACTOR среди всех профессий персоны.
Возвращает: bool true, если персона является актером дубляжа, false в противном случае
См. также:
PersonProfession::VOICE_ACTOR: Константа для актёра дубляжаself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isOtherProfession: () Проверка других профессий персоны
isOtherProfession()
Описание: Проверяет, является ли персона иной профессии Метод проверяет наличие профессии "другой" в массиве профессий персоны. Использует строгое сравнение для точного соответствия значения enum PersonProfession::DIRECTOR среди всех профессий персоны.
Возвращает: bool true, если персона является другой профессии, false в противном случае
См. также:
PersonProfession::DIRECTOR: Константа для других профессий персоныself::isActor: () Проверка, является ли персона актеромself::isDirector: () Проверка, является ли персона режиссеромself::isWriter: () Проверка, является ли персона сценаристомself::isProducer: () Проверка, является ли персона продюсеромself::isComposer: () Проверка, является ли персона композиторомself::isOperator: () Проверка, является ли персона операторомself::isDesigner: () Проверка, является ли персона художникомself::isEditor: () Проверка, является ли персона монтажеромself::isVoiceActor: () Проверка, является ли персона актером дубляжа
toArray()
Описание: Преобразует объект сущности персоны в массив данных Конвертирует все свойства сущности персоны в ассоциативный массив для сериализации, передачи в API или сохранения в хранилище данных. Метод выполняет безопасное преобразование nullable enum значений в их строковые представления через использование null-safe оператора. Возвращаемый массив содержит как базовые свойства персоны (id, имена, фото), так и дополнительные данные (профессии на русском и английском языках, полученные через соответствующие методы).
- id: int - уникальный идентификатор персоны
- photo: string|null - URL фотографии персоны
- name: string|null - русское имя персоны
- enName: string|null - английское имя персоны
- profession: array|null - массив объектов профессий персоны
- professionRu: array - массив профессий на русском языке
- professionEn: array - массив профессий на английском языке
- sex: string|null - пол персоны (значение enum или null)
- growth: int|null - рост персоны в сантиметрах
- birthday: string|null - дата рождения в формате строки
- death: string|null - дата смерти в формате строки
- age: int|null - возраст персоны в годах
- birthPlace: array - массив мест рождения
- deathPlace: array - массив мест смерти
С версии: 1.0.0
Возвращает: array<string, mixed> Ассоциативный массив с данными персоны, содержащий ключи:
См. также:
getBestName: () Для получения наиболее подходящего имени персоныgetProfessionRu: () Для получения массива профессий на русском языкеgetProfessionEn: () Для получения массива профессий на английском языке\KinopoiskDev\Enums\PersonSex: Enum для значений пола персоны\KinopoiskDev\Enums\PersonProfession: Enum для значений профессий персоны
getProfessionRu()
Описание: Возвращает профессию персоны на русском языке Предоставляет доступ к названию профессии персоны на русском языке. Может использоваться для отображения профессии в русскоязычном интерфейсе.
Возвращает: array<string> Название профессии на русском языке или null, если не задано
См. также:
Person::getProfessionEn: () Для получения профессии на английском языке
getProfessionEn()
Описание: Возвращает профессию персоны на английском языке Предоставляет доступ к профессии персоны в виде enum значения. Может использоваться для программной обработки типа профессии.
Возвращает: array<string> Enum значение профессии или null, если не задано
См. также:
Person::getProfessionRu: () Для получения профессии на русском языкеPersonProfession: Для списка возможных профессий