API PHP Перечисления ProfessionKey Enum профессий персоны в фильме.
Описание ProfessionKey
представляет различные профессии, которые может иметь персона в фильме согласно Kinopoisk API.
API Endpoint: /api/v1/persons/{id}
Значения enum Основные профессии ACTOR
- Актер DIRECTOR
- Режиссер WRITER
- Сценарист PRODUCER
- Продюсер PRODUCER_USSR
- Продюсер (СССР) COMPOSER
- Композитор OPERATOR
- Оператор EDITOR
- Монтажер DESIGN
- Художник TRANSLATOR
- Переводчик VOICE_DIRECTOR
- Режиссер дубляжа Специальные роли HIMSELF
- В роли самого себя HERSELF
- В роли самой себя HRONO_TITR_MALE
- За кадром (мужской голос) HRONO_TITR_FEMALE
- За кадром (женский голос) UNKNOWN
- Неизвестно Методы isActor() Проверяет, является ли профессия актерской.
PHP public function isActor(): bool
Возвращаемое значение bool
- true
если актер, false
в противном случае Пример использования PHP if (ProfessionKey::ACTOR->isActor()) {
echo "Актерская роль";
}
isDirector() Проверяет, является ли профессия режиссерской.
PHP public function isDirector(): bool
Возвращаемое значение bool
- true
если режиссер, false
в противном случае Пример использования PHP if (ProfessionKey::DIRECTOR->isDirector()) {
echo "Режиссерская работа";
}
isWriter() Проверяет, является ли профессия сценарной.
PHP public function isWriter(): bool
Возвращаемое значение bool
- true
если сценарист, false
в противном случае Пример использования PHP if (ProfessionKey::WRITER->isWriter()) {
echo "Сценарная работа";
}
isVoiceDirector() Проверяет, является ли роль режиссёром озвучивания.
PHP public function isVoiceDirector(): bool
Возвращаемое значение bool
- true
если режиссёр озвучивания, false
в противном случае Описание Определяет, соответствует ли текущий экземпляр enum константе VOICE_DIRECTOR. Используется для фильтрации персонала по специфической роли в озвучивании фильмов и сериалов.
Пример использования PHP if ($role->isVoiceDirector()) {
echo 'Это режиссёр озвучивания';
}
isComposer() Проверяет, является ли роль композитором.
PHP public function isComposer(): bool
Возвращаемое значение bool
- true
если композитор, false
в противном случае Описание Определяет, соответствует ли текущий экземпляр enum константе COMPOSER. Используется для идентификации людей, ответственных за музыкальное сопровождение фильма или сериала.
Пример использования PHP if ($role->isComposer()) {
echo 'Этот человек создал музыку к фильму';
}
isEditor() Проверяет, является ли роль редактором.
PHP public function isEditor(): bool
Возвращаемое значение bool
- true
если редактор, false
в противном случае Описание Определяет, соответствует ли текущий экземпляр enum константе EDITOR. Используется для определения людей, занимавшихся монтажом и редактированием материала фильма или сериала.
Пример использования PHP if ($role->isEditor()) {
echo 'Этот человек занимался монтажом';
}
isDesigner() Проверяет, является ли роль дизайнером.
PHP public function isDesigner(): bool
Возвращаемое значение bool
- true
если дизайнер, false
в противном случае Описание Определяет, соответствует ли текущий экземпляр enum константе DESIGN. Используется для идентификации специалистов по визуальному оформлению, художников-постановщиков и дизайнеров костюмов.
Пример использования PHP if ($role->isDesigner()) {
echo 'Этот человек работал над визуальным оформлением';
}
isTranslator() Проверяет, является ли роль переводчиком.
PHP public function isTranslator(): bool
Возвращаемое значение bool
- true
если переводчик, false
в противном случае Описание Определяет, соответствует ли текущий экземпляр enum константе TRANSLATOR. Используется для определения людей, ответственных за перевод диалогов и локализацию контента на другие языки.
Пример использования PHP if ($role->isTranslator()) {
echo 'Этот человек занимался переводом';
}
isProducer() Проверяет, является ли профессия продюсерской.
PHP public function isProducer(): bool
Возвращаемое значение bool
- true
если продюсер, false
в противном случае Пример использования PHP if (ProfessionKey::PRODUCER->isProducer()) {
echo "Продюсерская работа";
}
getShortName() Получает краткое название профессии.
PHP public function getShortName(): string
Возвращаемое значение string
- Краткое название профессии Описание Возвращает краткое название без дополнительных пояснений.
Пример использования PHP echo ProfessionKey::HRONO_TITR_MALE->getShortName(); // "За кадром"
echo ProfessionKey::HIMSELF->getShortName(); // "В роли самого себя"
getDisplayName() Получает отображаемое название профессии на русском языке.
PHP public function getDisplayName(): string
Возвращаемое значение string
- Отображаемое название профессии Описание Возвращает человекочитаемое название профессии для отображения пользователю.
Пример использования PHP echo ProfessionKey::ACTOR->getDisplayName(); // "Актер"
echo ProfessionKey::DIRECTOR->getDisplayName(); // "Режиссер"
getCategory() Получает категорию профессии.
PHP public function getCategory(): string
Возвращаемое значение string
- Категория профессии Описание Возвращает категорию, к которой относится профессия.
Пример использования PHP echo ProfessionKey::ACTOR->getCategory(); // "Творческая"
echo ProfessionKey::PRODUCER->getCategory(); // "Управленческая"
isCreative() Проверяет, является ли профессия творческой.
PHP public function isCreative(): bool
Возвращаемое значение bool
- true
если творческая профессия, false
в противном случае Описание К творческим профессиям относятся актер, режиссер, сценарист, композитор.
Пример использования PHP if (ProfessionKey::ACTOR->isCreative()) {
echo "Творческая профессия";
}
isManagement() Проверяет, является ли профессия управленческой.
PHP public function isManagement(): bool
Возвращаемое значение bool
- true
если управленческая профессия, false
в противном случае Описание К управленческим профессиям относятся продюсеры.
Пример использования PHP if (ProfessionKey::PRODUCER->isManagement()) {
echo "Управленческая профессия";
}
isTechnical() Проверяет, является ли профессия технической.
PHP public function isTechnical(): bool
Возвращаемое значение bool
- true
если техническая профессия, false
в противном случае Описание К техническим профессиям относятся оператор, монтажер, художник.
Пример использования PHP if (ProfessionKey::OPERATOR->isTechnical()) {
echo "Техническая профессия";
}
isSpecial() Проверяет, является ли профессия специальной.
PHP public function isSpecial(): bool
Возвращаемое значение bool
- true
если специальная профессия, false
в противном случае Описание К специальным профессиям относятся роли самого себя, за кадром, переводчик.
Пример использования PHP if (ProfessionKey::HIMSELF->isSpecial()) {
echo "Специальная роль";
}
Полный пример использования PHP <?php
require_once 'vendor/autoload.php' ;
use NotKinopoisk\Client ;
use NotKinopoisk\Enums\ProfessionKey ;
// Создание клиента
$client = new Client ( 'your-api-key' );
// Получение персонала фильма
$personService = $client -> persons ;
$staff = $personService -> getFilmStaff ( 301 ); // Матрица
echo "=== Анализ персонала фильма 'Матрица' === \n " ;
// Группировка по категориям
$categories = [
'Творческая' => [],
'Управленческая' => [],
'Техническая' => [],
'Специальная' => []
];
foreach ( $staff as $member ) {
$category = $member -> professionKey -> getCategory ();
if ( isset ( $categories [ $category ])) {
$categories [ $category ][] = $member ;
}
}
// Вывод статистики по категориям
foreach ( $categories as $category => $members ) {
if ( ! empty ( $members )) {
echo " \n 📁 { $category } (" . count ( $members ) . " человек): \n " ;
// Группировка по профессиям внутри категории
$professions = [];
foreach ( $members as $member ) {
$profession = $member -> professionKey -> getDisplayName ();
if ( ! isset ( $professions [ $profession ])) {
$professions [ $profession ] = 0 ;
}
$professions [ $profession ] ++ ;
}
foreach ( $professions as $profession => $count ) {
echo " - { $profession } : { $count } \n " ;
}
}
}
// Поиск конкретных профессий
echo " \n 🔍 Поиск конкретных профессий: \n " ;
$actors = array_filter ( $staff , fn ( $member ) => $member -> professionKey -> isActor ());
$directors = array_filter ( $staff , fn ( $member ) => $member -> professionKey -> isDirector ());
$writers = array_filter ( $staff , fn ( $member ) => $member -> professionKey -> isWriter ());
$composers = array_filter ( $staff , fn ( $member ) => $member -> professionKey -> isComposer ());
echo "Актеров: " . count ( $actors ) . " \n " ;
echo "Режиссеров: " . count ( $directors ) . " \n " ;
echo "Сценаристов: " . count ( $writers ) . " \n " ;
echo "Композиторов: " . count ( $composers ) . " \n " ;
Работа с профессиями PHP // Функция для получения персонала по профессии
function getStaffByProfession(array $staff, ProfessionKey $profession): array {
return array_filter($staff, fn($member) => $member->professionKey === $profession);
}
// Функция для получения персонала по категории
function getStaffByCategory(array $staff, string $category): array {
return array_filter($staff, function($member) use ($category) {
return $member->professionKey->getCategory() === $category;
});
}
// Функция для анализа профессий
function analyzeProfessions(array $staff): array {
$analysis = [
'total' => count($staff),
'categories' => [],
'professions' => [],
'creative' => 0,
'management' => 0,
'technical' => 0,
'special' => 0
];
foreach ($staff as $member) {
$profession = $member->professionKey;
// Подсчет по категориям
$category = $profession->getCategory();
if (!isset($analysis['categories'][$category])) {
$analysis['categories'][$category] = 0;
}
$analysis['categories'][$category]++;
// Подсчет по профессиям
$professionName = $profession->getDisplayName();
if (!isset($analysis['professions'][$professionName])) {
$analysis['professions'][$professionName] = 0;
}
$analysis['professions'][$professionName]++;
// Подсчет по типам
if ($profession->isCreative()) $analysis['creative']++;
if ($profession->isManagement()) $analysis['management']++;
if ($profession->isTechnical()) $analysis['technical']++;
if ($profession->isSpecial()) $analysis['special']++;
}
return $analysis;
}
// Использование
$staff = $personService->getFilmStaff(301);
$analysis = analyzeProfessions($staff);
echo "=== Анализ профессий ===\n";
echo "Всего участников: {$analysis['total']}\n";
echo "Творческих: {$analysis['creative']}\n";
echo "Управленческих: {$analysis['management']}\n";
echo "Технических: {$analysis['technical']}\n";
echo "Специальных: {$analysis['special']}\n";
echo "\nПо категориям:\n";
foreach ($analysis['categories'] as $category => $count) {
echo "- {$category}: {$count}\n";
}
Создание отчета о персонале PHP function createStaffReport(array $staff): string {
$report = "=== ОТЧЕТ О ПЕРСОНАЛЕ ФИЛЬМА ===\n\n";
// Основные творческие роли
$mainRoles = [
ProfessionKey::DIRECTOR => 'Режиссер',
ProfessionKey::WRITER => 'Сценарист',
ProfessionKey::COMPOSER => 'Композитор'
];
foreach ($mainRoles as $profession => $title) {
$members = getStaffByProfession($staff, $profession);
if (!empty($members)) {
$report .= "🎬 {$title}:\n";
foreach ($members as $member) {
$report .= " - {$member->getDisplayName()}\n";
}
$report .= "\n";
}
}
// Актеры
$actors = getStaffByProfession($staff, ProfessionKey::ACTOR);
if (!empty($actors)) {
$report .= "🎭 Актеры (" . count($actors) . "):\n";
foreach (array_slice($actors, 0, 10) as $actor) {
$report .= " - {$actor->getDisplayName()}";
if ($actor->description) {
$report .= " ({$actor->description})";
}
$report .= "\n";
}
if (count($actors) > 10) {
$report .= " ... и еще " . (count($actors) - 10) . " актеров\n";
}
$report .= "\n";
}
// Технический персонал
$technical = getStaffByCategory($staff, 'Техническая');
if (!empty($technical)) {
$report .= "🔧 Технический персонал (" . count($technical) . "):\n";
$techProfessions = [];
foreach ($technical as $member) {
$profession = $member->professionKey->getDisplayName();
if (!isset($techProfessions[$profession])) {
$techProfessions[$profession] = [];
}
$techProfessions[$profession][] = $member;
}
foreach ($techProfessions as $profession => $members) {
$report .= " {$profession} (" . count($members) . "):\n";
foreach (array_slice($members, 0, 3) as $member) {
$report .= " - {$member->getDisplayName()}\n";
}
if (count($members) > 3) {
$report .= " ... и еще " . (count($members) - 3) . "\n";
}
}
}
return $report;
}
// Использование
$staff = $personService->getFilmStaff(301);
$report = createStaffReport($staff);
echo $report;
Связанные классы 25 июля 2025 г. 19:29:41 25 июля 2025 г. 09:40:47