Перечисления (Enums)
Документация по перечисления (enums). Часть API wrapper для КиноПоиска.
Перечисления для определения констант и типов в Kinopoisk API.
📚 Навигация: Главная → Перечисления
📋 Категории перечислений
🖼️ Медиа и контент
- ImageType - Типы изображений
- VideoSite - Сайты видео
- ContentType - Типы контента
- CollectionType - Типы коллекций
📝 Отзывы и факты
- ReviewType - Типы отзывов
- ReviewOrder - Порядок сортировки отзывов
- FactType - Типы фактов
👥 Персоны и профессии
- ProfessionKey - Ключи профессий
- Sex - Пол
- RelationType - Типы связей
🎬 Фильмы и сериалы
- FilmOrder - Порядок сортировки фильмов
- DistributionType - Типы дистрибуции
- DistributionSubType - Подтипы дистрибуции
- ProductionStatus - Статусы производства
📊 Статистика и награды
- BoxOfficeType - Типы кассовых сборов
- Month - Месяцы
🔧 API и система
- ApiVersion - Версии API
- AccountType - Типы аккаунтов
🔗 Связанные компоненты
Модели
- Film - Использует ContentType, FilmOrder
- Image - Использует ImageType
- Video - Использует VideoSite
- Review - Использует ReviewType, ReviewOrder
- Fact - Использует FactType
- Staff - Использует ProfessionKey
- Person - Использует Sex
- PersonSpouse - Использует Sex, RelationType
- BoxOffice - Использует BoxOfficeType
- Distribution - Использует DistributionType
Сервисы
- FilmService - Использует все перечисления фильмов
- PersonService - Использует ProfessionKey, Sex
- MediaService - Использует ImageType, VideoSite
- UserService - Использует ApiVersion, AccountType
🚀 Быстрый старт
Использование перечислений
<?php
require_once 'vendor/autoload.php';
use NotKinopoisk\Enums\ImageType;
use NotKinopoisk\Enums\ReviewType;
use NotKinopoisk\Enums\ProfessionKey;
use NotKinopoisk\Enums\ContentType;
use NotKinopoisk\Enums\Sex;
// Работа с типами изображений
$posterType = ImageType::POSTER;
$screenshotType = ImageType::SCREENSHOT;
echo "Тип постера: {$posterType->value}\n"; // "POSTER"
echo "Отображаемое имя: {$posterType->getDisplayName()}\n"; // "Постер"
// Проверка типов
if ($posterType->isMain()) {
echo "Это основной тип изображения\n";
}
// Работа с типами отзывов
$positiveReview = ReviewType::POSITIVE;
$negativeReview = ReviewType::NEGATIVE;
echo "Тип отзыва: {$positiveReview->getDisplayName()}\n"; // "Положительный"
// Работа с профессиями
$director = ProfessionKey::DIRECTOR;
$actor = ProfessionKey::ACTOR;
echo "Профессия: {$director->getDisplayName()}\n"; // "Режиссер"
if ($director->isCreativeProfession()) {
echo "Это творческая профессия\n";
}
// Работа с типами контента
$film = ContentType::FILM;
$series = ContentType::SERIES;
echo "Тип контента: {$film->getDisplayName()}\n"; // "Фильм"
if ($film->isFilm()) {
echo "Это фильм\n";
}
// Работа с полом
$male = Sex::MALE;
$female = Sex::FEMALE;
echo "Пол: {$male->getDisplayName()}\n"; // "Мужской"📊 Статистика перечислений
Медиа и контент (4)
- ImageType - 8 типов изображений
- VideoSite - 6 сайтов видео
- ContentType - 11 типов контента
- CollectionType - 4 типа коллекций
Отзывы и факты (3)
- ReviewType - 3 типа отзывов
- ReviewOrder - 4 порядка сортировки
- FactType - 2 типа фактов
Персоны и профессии (3)
- ProfessionKey - 15+ ключей профессий
- Sex - 3 значения пола
- RelationType - 4 типа связей
Фильмы и сериалы (3)
- FilmOrder - 8 порядков сортировки
- DistributionType - 3 типа дистрибуции
- DistributionSubType - 6 подтипов дистрибуции
Статистика и награды (2)
- BoxOfficeType - 3 типа кассовых сборов
- Month - 12 месяцев
API и система (2)
- ApiVersion - 3 версии API
- AccountType - 2 типа аккаунтов
🔧 Общие методы
Большинство перечислений имеют общие методы:
getDisplayName()
public function getDisplayName(): stringВозвращает человекочитаемое название значения.
from()
public static function from(string|int $value): selfСоздает экземпляр перечисления из значения.
values()
public static function values(): arrayВозвращает все возможные значения перечисления.
📖 Примеры использования
Работа с типами изображений
use NotKinopoisk\Enums\ImageType;
// Получение всех типов изображений
$allTypes = ImageType::cases();
foreach ($allTypes as $type) {
echo "{$type->value}: {$type->getDisplayName()}\n";
}
// Фильтрация основных типов
$mainTypes = array_filter($allTypes, fn($type) => $type->isMain());
foreach ($mainTypes as $type) {
echo "Основной тип: {$type->getDisplayName()}\n";
}
// Создание из строки
$type = ImageType::from('POSTER');
echo "Тип: {$type->getDisplayName()}\n";Работа с профессиями
use NotKinopoisk\Enums\ProfessionKey;
// Получение всех профессий
$allProfessions = ProfessionKey::cases();
// Группировка по категориям
$creativeProfessions = array_filter($allProfessions, fn($p) => $p->isCreativeProfession());
$technicalProfessions = array_filter($allProfessions, fn($p) => $p->isTechnicalProfession());
echo "Творческие профессии:\n";
foreach ($creativeProfessions as $profession) {
echo "- {$profession->getDisplayName()}\n";
}
echo "Технические профессии:\n";
foreach ($technicalProfessions as $profession) {
echo "- {$profession->getDisplayName()}\n";
}
// Проверка конкретных профессий
$director = ProfessionKey::DIRECTOR;
$actor = ProfessionKey::ACTOR;
if ($director->isCreativeProfession()) {
echo "Режиссер - творческая профессия\n";
}
if ($actor->isCreativeProfession()) {
echo "Актер - творческая профессия\n";
}Работа с типами контента
use NotKinopoisk\Enums\ContentType;
// Получение всех типов контента
$allTypes = ContentType::cases();
// Фильтрация фильмов
$films = array_filter($allTypes, fn($type) => $type->isFilm());
foreach ($films as $type) {
echo "Фильм: {$type->getDisplayName()}\n";
}
// Фильтрация сериалов
$series = array_filter($allTypes, fn($type) => $type->isSeries());
foreach ($series as $type) {
echo "Сериал: {$type->getDisplayName()}\n";
}
// Создание из строки
$contentType = ContentType::from('FILM');
echo "Тип контента: {$contentType->getDisplayName()}\n";Работа с порядками сортировки
use NotKinopoisk\Enums\FilmOrder;
use NotKinopoisk\Enums\ReviewOrder;
// Получение всех порядков сортировки фильмов
$filmOrders = FilmOrder::cases();
foreach ($filmOrders as $order) {
echo "{$order->getDisplayName()}: {$order->value}\n";
}
// Получение всех порядков сортировки отзывов
$reviewOrders = ReviewOrder::cases();
foreach ($reviewOrders as $order) {
echo "{$order->getDisplayName()}: {$order->value}\n";
if ($order->isDateSort()) {
echo " - Сортировка по дате\n";
}
if ($order->isPositiveRatingSort()) {
echo " - Сортировка по положительным оценкам\n";
}
if ($order->isNegativeRatingSort()) {
echo " - Сортировка по отрицательным оценкам\n";
}
}🔗 Связанные разделы
- Модели - Используют перечисления
- Сервисы - Работают с перечислениями
- Ответы - Могут содержать перечисления
- Исключения - Обработка ошибок
- Интерфейсы - Базовые интерфейсы