Film - Модель фильма
Документация по film - модель фильма. Часть API wrapper для КиноПоиска.
Модель фильма из Kinopoisk API.
📚 Навигация: Главная → Модели → Film
🔗 Связанные классы:
- FilmService - Сервис для работы с фильмами
- Staff - Съемочная группа
- Review - Отзывы
- Fact - Факты
- Image - Изображения
- Video - Видео
- Award - Награды
- BoxOffice - Кассовые сборы
- Country - Страны
- Genre - Жанры
- Episode - Эпизоды
- Season - Сезоны
- RelatedFilm - Связанные фильмы
- ContentType - Типы контента
- FilmOrder - Порядок сортировки фильмов
- ImageType - Типы изображений
- ReviewOrder - Порядок сортировки отзывов
- ReviewType - Типы отзывов
- FactType - Типы фактов
- VideoSite - Сайты видео
- BoxOfficeType - Типы кассовых сборов
- DistributionType - Типы дистрибуции
- Month - Месяцы
- ApiException - Базовое исключение API
- ResourceNotFoundException - Ресурс не найден
- KpValidationException - Ошибка валидации
Описание
Представляет полную информацию о фильме, полученную из Kinopoisk Unofficial API. Содержит все основные данные: названия, рейтинги, описания, технические характеристики и метаданные фильма.
Основные возможности
- Хранение полной информации о фильме в неизменяемом виде (readonly свойства)
- Создание объекта из массива данных API
- Удобные методы для получения отображаемого названия и основного рейтинга
- Определение типа контента (фильм/сериал)
Свойства
Основные идентификаторы
$kinopoiskId
Тип: int
Уникальный идентификатор фильма в Кинопоиске.
$kinopoiskHDId
Тип: string|null
Идентификатор фильма в Кинопоиск HD (если доступен).
$imdbId
Тип: string|null
Идентификатор фильма в IMDb.
Названия
$nameRu
Тип: string|null
Название фильма на русском языке.
$nameEn
Тип: string|null
Название фильма на английском языке.
$nameOriginal
Тип: string|null
Оригинальное название фильма.
Изображения
$posterUrl
Тип: string
URL постера фильма в высоком разрешении.
$posterUrlPreview
Тип: string
URL постера фильма в низком разрешении.
$coverUrl
Тип: string|null
URL обложки фильма.
$logoUrl
Тип: string|null
URL логотипа фильма.
Рейтинги
$ratingKinopoisk
Тип: float|null
Рейтинг Кинопоиска.
$ratingKinopoiskVoteCount
Тип: int|null
Количество голосов на Кинопоиске.
$ratingImdb
Тип: float|null
Рейтинг IMDb.
$ratingImdbVoteCount
Тип: int|null
Количество голосов на IMDb.
$ratingFilmCritics
Тип: float|null
Рейтинг кинокритиков.
$ratingFilmCriticsVoteCount
Тип: int|null
Количество голосов кинокритиков.
$ratingGoodReview
Тип: float|null
Рейтинг хороших рецензий.
$ratingGoodReviewVoteCount
Тип: int|null
Количество голосов за хорошие рецензии.
$ratingAwait
Тип: float|null
Рейтинг ожидания.
$ratingAwaitCount
Тип: int|null
Количество голосов ожидания.
$ratingRfCritics
Тип: float|null
Рейтинг российских кинокритиков.
$ratingRfCriticsVoteCount
Тип: int|null
Количество голосов российских кинокритиков.
Основная информация
$year
Тип: int|null
Год выпуска фильма.
$filmLength
Тип: int|null
Длительность фильма в минутах.
$startYear
Тип: int|null
Год начала производства (для сериалов).
$endYear
Тип: int|null
Год окончания производства (для сериалов).
$type
Тип: ContentType
Тип контента (FILM, SERIES, MINI_SERIES, TV_SHOW).
$productionStatus
Тип: ProductionStatus|null
Статус производства фильма.
Описания
$slogan
Тип: string|null
Слоган фильма.
$description
Тип: string|null
Полное описание фильма.
$shortDescription
Тип: string|null
Краткое описание фильма.
$editorAnnotation
Тип: string|null
Редакторская аннотация.
Дополнительная информация
$webUrl
Тип: string|null
URL страницы фильма на Кинопоиске.
$reviewsCount
Тип: int|null
Количество рецензий на фильм.
$isTicketsAvailable
Тип: bool|null
Доступны ли билеты в кинотеатрах.
$ratingMpaa
Тип: string|null
Рейтинг MPAA.
$ratingAgeLimits
Тип: string|null
Возрастные ограничения.
$hasImax
Тип: bool|null
Доступен ли в формате IMAX.
$has3D
Тип: bool|null
Доступен ли в формате 3D.
$lastSync
Тип: string|null
Время последней синхронизации данных.
Коллекции
$countries
Тип: Country[]
Массив стран производства.
$genres
Тип: Genre[]
Массив жанров фильма.
Флаги
$serial
Тип: bool|null
Является ли сериалом.
$shortFilm
Тип: bool|null
Является ли короткометражным фильмом.
$completed
Тип: bool|null
Завершен ли (для сериалов).
Методы
__construct(...)
Конструктор модели фильма.
Параметры: См. свойства выше для полного списка параметров.
fromArray(array $data): self
Создает экземпляр фильма из массива данных API.
Параметры:
$data(array) - Массив данных от API
Возвращает:
self- Новый экземпляр фильма
Пример:
$film = Film::fromArray($apiData);getDisplayName(): string
Получает отображаемое название фильма.
Возвращает:
string- Название на русском языке, если доступно, иначе на английском
Пример:
echo $film->getDisplayName(); // "Матрица" или "The Matrix"isSerial(): bool
Проверяет, является ли фильм сериалом.
Возвращает:
bool- true, если это сериал
Пример:
if ($film->isSerial()) {
echo "Это сериал";
}getMainRating(): ?float
Получает основной рейтинг фильма.
Возвращает:
float|null- Рейтинг Кинопоиска, если доступен, иначе null
Пример:
$rating = $film->getMainRating(); // 8.7getCountriesString(): string
Получает строку со странами производства.
Возвращает:
string- Строка с названиями стран через запятую
Пример:
echo $film->getCountriesString(); // "США, Великобритания"getGenresString(): string
Получает строку с жанрами фильма.
Возвращает:
string- Строка с названиями жанров через запятую
Пример:
echo $film->getGenresString(); // "боевик, фантастика, триллер"formatDuration(): string
Форматирует длительность фильма.
Возвращает:
string- Отформатированная длительность (например, "02:16:00")
Пример:
echo $film->formatDuration(); // "00:02:16"formatDurationString(): string
Форматирует длительность фильма в виде строки.
Возвращает:
string- Отформатированная длительность с полными словами
Пример:
echo $film->formatDurationString(); // "2 часа 16 минут"toArray(): array
Преобразует объект фильма в массив.
Возвращает:
array- Ассоциативный массив со всеми данными фильма
Примеры использования
Создание из данных API
<?php
use NotKinopoisk\Models\Film;
// Создание из данных API
$film = Film::fromArray($apiData);
// Получение отображаемого названия
echo $film->getDisplayName(); // "Матрица" или "The Matrix"
// Проверка типа контента
if ($film->isSerial()) {
echo "Это сериал";
}
// Получение основного рейтинга
$rating = $film->getMainRating(); // 8.7Работа с информацией о фильме
// Получение основной информации
echo "Название: " . $film->getDisplayName() . "\n";
echo "Год: " . $film->year . "\n";
echo "Длительность: " . $film->formatDuration() . "\n";
echo "Страны: " . $film->getCountriesString() . "\n";
echo "Жанры: " . $film->getGenresString() . "\n";
// Проверка рейтингов
if ($film->ratingKinopoisk) {
echo "Рейтинг Кинопоиска: " . $film->ratingKinopoisk . "\n";
}
if ($film->ratingImdb) {
echo "Рейтинг IMDb: " . $film->ratingImdb . "\n";
}Проверка типа контента
switch ($film->type) {
case ContentType::FILM:
echo "Это фильм";
break;
case ContentType::SERIES:
echo "Это сериал";
break;
case ContentType::MINI_SERIES:
echo "Это мини-сериал";
break;
case ContentType::TV_SHOW:
echo "Это телешоу";
break;
}Связанные классы
\NotKinopoisk\Models\FilmCollection- Коллекция фильмов\NotKinopoisk\Services\FilmService- Сервис для работы с фильмами\NotKinopoisk\Models\Country- Модель страны\NotKinopoisk\Models\Genre- Модель жанра\NotKinopoisk\Enums\ContentType- Типы контента\NotKinopoisk\Enums\ProductionStatus- Статусы производства