MovieStaffResponse
Документация по moviestaffresponse. Часть API wrapper для КиноПоиска.
Описание
MovieStaffResponse - это специализированный класс ответа для работы со съемочной командой фильма от Kinopoisk API. Наследует функциональность SimpleResponse и предоставляет методы для фильтрации участников съемочного процесса по их профессиональным ролям.
Основные возможности
- Хранение списка сотрудников в неизменяемом виде
- Создание объекта из массива данных API с валидацией класса
- Фильтрация персонала по профессиональным ролям
- Преобразование в массив для сериализации
- Получение различных групп персонала (актеры, режиссеры, сценаристы и др.)
Наследование
NotKinopoisk\Responses\SimpleResponse
└── NotKinopoisk\Responses\MovieStaffResponseКонструктор
public function __construct(public array $items)Параметры
$items(array) - Массив сотрудников съемочной команды
Статические методы
fromArray()
public static function fromArray(array $data, string $cls): selfСоздает экземпляр MovieStaffResponse из массива данных API.
Параметры
$data(array) - Массив данных от API$cls(string) - Имя класса для элементов коллекции
Возвращает
MovieStaffResponse- Новый экземпляр с данными о съемочной команде
Исключения
KpValidationException- Если данные имеют некорректную структуру
Методы экземпляра
getActors()
public function getActors(): arrayПолучает список актеров из съемочной команды.
Возвращает
Staff[]- Массив объектов актеров
Пример использования
$actors = $staffResponse->getActors();
foreach ($actors as $actor) {
echo "Актер: " . $actor->nameRu . "\n";
}getWriters()
public function getWriters(): arrayПолучает список сценаристов из съемочной команды.
Возвращает
Staff[]- Массив объектов сценаристов
Пример использования
$writers = $staffResponse->getWriters();
foreach ($writers as $writer) {
echo "Сценарист: " . $writer->nameRu . "\n";
}getDirectors()
public function getDirectors(): arrayПолучает список режиссеров из съемочной команды.
Возвращает
Staff[]- Массив объектов режиссеров
Пример использования
$directors = $staffResponse->getDirectors();
foreach ($directors as $director) {
echo "Режиссер: " . $director->nameRu . "\n";
}getProducers()
public function getProducers(): arrayПолучает список продюсеров из съемочной команды.
Возвращает
Staff[]- Массив объектов продюсеров
Пример использования
$producers = $staffResponse->getProducers();
foreach ($producers as $producer) {
echo "Продюсер: " . $producer->nameRu . "\n";
}getCompositors()
public function getCompositors(): arrayПолучает список композиторов из съемочной команды.
Возвращает
Staff[]- Массив объектов композиторов
Пример использования
$composers = $staffResponse->getCompositors();
foreach ($composers as $composer) {
echo "Композитор: " . $composer->nameRu . "\n";
}getEditors()
public function getEditors(): arrayПолучает список монтажеров из съемочной команды.
Возвращает
Staff[]- Массив объектов монтажеров
Пример использования
$editors = $staffResponse->getEditors();
foreach ($editors as $editor) {
echo "Монтажер: " . $editor->nameRu . "\n";
}getDesigners()
public function getDesigners(): arrayПолучает список художников из съемочной команды.
Возвращает
Staff[]- Массив объектов художников
Пример использования
$designers = $staffResponse->getDesigners();
foreach ($designers as $designer) {
echo "Художник: " . $designer->nameRu . "\n";
}Профессиональные роли
Класс поддерживает фильтрацию по следующим профессиональным ролям:
- Актеры - Участники актерского состава
- Режиссеры - Режиссеры фильма
- Сценаристы - Авторы сценария
- Продюсеры - Продюсеры проекта
- Композиторы - Авторы музыки
- Монтажеры - Редакторы фильма
- Художники - Художники-постановщики
API Endpoint
Класс используется для работы с API endpoint:
/api/v1/staff- Получение информации о съемочной команде
Обработка ошибок
Класс включает обработку ошибок:
- Валидация структуры данных API
- Проверка существования и совместимости целевого класса
- Обработка некорректных данных персонала
Пример полного использования
use NotKinopoisk\Responses\MovieStaffResponse;
use NotKinopoisk\Models\Staff;
// Получение данных от API
$apiData = [
[
'staffId' => 1,
'nameRu' => 'Иван Иванов',
'professionKey' => 'ACTOR'
],
[
'staffId' => 2,
'nameRu' => 'Петр Петров',
'professionKey' => 'DIRECTOR'
],
[
'staffId' => 3,
'nameRu' => 'Сидор Сидоров',
'professionKey' => 'WRITER'
]
];
// Создание объекта ответа
$staffResponse = MovieStaffResponse::fromArray($apiData, Staff::class);
// Получение различных групп персонала
$actors = $staffResponse->getActors();
$directors = $staffResponse->getDirectors();
$writers = $staffResponse->getWriters();
$producers = $staffResponse->getProducers();
$composers = $staffResponse->getCompositors();
$editors = $staffResponse->getEditors();
$designers = $staffResponse->getDesigners();
// Вывод информации о персонале
echo "Актеры (" . count($actors) . "):\n";
foreach ($actors as $actor) {
echo "- {$actor->nameRu}\n";
}
echo "\nРежиссеры (" . count($directors) . "):\n";
foreach ($directors as $director) {
echo "- {$director->nameRu}\n";
}
echo "\nСценаристы (" . count($writers) . "):\n";
foreach ($writers as $writer) {
echo "- {$writer->nameRu}\n";
}
// Преобразование в массив
$staffArray = $staffResponse->toArray();Связанные классы
SimpleResponse- Базовый класс для простых ответовStaff- Модель сотрудника съемочной командыProfessionKey- Перечисление профессиональных ролейKpValidationException- Исключение для ошибок валидации