Перейти к содержанию

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: Для списка возможных профессий