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

MovieFilter

Описание: Класс для создания фильтров при поиске фильмов Этот класс предоставляет методы для построения параметров фильтрации при поиске фильмов через API Kinopoisk.dev

Ссылка: https://kinopoiskdev.readme.io/reference/moviecontroller_findmanybyqueryv1_4

id()

Описание: Добавляет фильтр по ID фильма

Параметры:

  • $id (int|array): ID фильма или массив ID
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

addFilter()

Описание: Добавляет произвольный фильтр

Параметры:

  • $field (string): Поле для фильтрации
  • $value (mixed): Значение фильтра
  • $operator (string): Оператор сравнения

externalId()

Описание: Добавляет фильтр по внешнему ID фильма

name()

Описание: Добавляет фильтр по названию фильма

Параметры:

  • $name (string): Название фильма
  • $operator (string): Оператор сравнения (eq, ne, in, nin, regex)

enName()

Описание: Добавляет фильтр по английскому названию фильма

Параметры:

  • $enName (string): Английское название фильма
  • $operator (string): Оператор сравнения (eq, ne, in, nin, regex)

alternativeName()

Описание: Добавляет фильтр по альтернативному названию фильма

Параметры:

  • $alternativeName (string): Альтернативное название фильма
  • $operator (string): Оператор сравнения (eq, ne, in, nin, regex)

names()

Описание: Добавляет фильтр по всем названиям фильма

Параметры:

  • $names (string|array): Название или массив названий
  • $operator (string): Оператор сравнения (eq, ne, in, nin, regex)

description()

Описание: Добавляет фильтр по описанию фильма

Параметры:

  • $description (string): Описание фильма
  • $operator (string): Оператор сравнения (eq, ne, regex)

shortDescription()

Описание: Добавляет фильтр по краткому описанию фильма

Параметры:

  • $shortDescription (string): Краткое описание фильма
  • $operator (string): Оператор сравнения (eq, ne, regex)

slogan()

Описание: Добавляет фильтр по слогану фильма

Параметры:

  • $slogan (string): Слоган фильма
  • $operator (string): Оператор сравнения (eq, ne, regex)

type()

Описание: Добавляет фильтр по типу фильма

Параметры:

  • $type (string): Тип фильма (movie, tv-series, cartoon, anime, animated-series, tv-show)
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

typeNumber()

Описание: Добавляет фильтр по номеру типа фильма

Параметры:

  • $typeNumber (int): Номер типа фильма (1-6)
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

isSeries()

Описание: Добавляет фильтр по признаку сериала

Параметры:

  • $isSeries (bool): Является ли фильм сериалом

status()

Описание: Добавляет фильтр по статусу фильма

Параметры:

  • $status (string): Статус фильма (filming, pre-production, completed, announced, post-production)
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

year()

Описание: Добавляет фильтр по году выпуска

Параметры:

  • $year (int): Год выпуска
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

yearRange()

Описание: Добавляет фильтр по диапазону годов выпуска

Параметры:

  • $fromYear (int): Начальный год
  • $toYear (int): Конечный год

releaseYears()

Описание: Добавляет фильтр по годам релиза

Параметры:

  • $releaseYears (array): Массив годов релиза

rating()

Описание: Добавляет фильтр по рейтингу

Параметры:

  • $rating (float|array): Рейтинг или массив с параметрами рейтинга
  • $field (string): Поле рейтинга (kp, imdb, tmdb, filmCritics, russianFilmCritics, await)
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

ratingRange()

Описание: Добавляет фильтр по диапазону рейтинга

Параметры:

  • $minRating (float): Минимальный рейтинг
  • $maxRating (float): Максимальный рейтинг
  • $field (string): Поле рейтинга (kp, imdb, tmdb, filmCritics, russianFilmCritics, await)

ratingMpaa()

Описание: Добавляет фильтр по рейтингу MPAA

Параметры:

  • $ratingMpaa (string): Рейтинг MPAA (g, pg, pg-13, r, nc-17)
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

ageRating()

Описание: Добавляет фильтр по возрастному рейтингу

Параметры:

  • $ageRating (int): Возрастной рейтинг
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

votes()

Описание: Добавляет фильтр по голосам

Параметры:

  • $votes (int|array): Количество голосов или массив с параметрами голосов
  • $field (string): Поле голосов (kp, imdb, tmdb, filmCritics, russianFilmCritics, await)
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

votesRange()

Описание: Добавляет фильтр по диапазону голосов

Параметры:

  • $minVotes (int): Минимальное количество голосов
  • $maxVotes (int): Максимальное количество голосов
  • $field (string): Поле голосов (kp, imdb, tmdb, filmCritics, russianFilmCritics, await)

seasonsInfo()

Описание: Добавляет фильтр по информации о сезонах

budget()

Описание: Добавляет фильтр по бюджету

audience()

Описание: Добавляет фильтр по аудитории

movieLength()

Описание: Добавляет фильтр по длительности фильма

Параметры:

  • $movieLength (int): Длительность фильма в минутах
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

seriesLength()

Описание: Добавляет фильтр по длительности серии

Параметры:

  • $seriesLength (int): Длительность серии в минутах
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

totalSeriesLength()

Описание: Добавляет фильтр по общей длительности сериала

Параметры:

  • $totalSeriesLength (int): Общая длительность сериала в минутах
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

genres()

Описание: Добавляет фильтр по жанрам

Параметры:

  • $genres (string|array): Жанр или массив жанров
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

includeGenres()

Описание: Добавляет фильтр для включения жанров (оператор +)

Параметры:

  • $genres (string|array): Жанр или массив жанров для включения

excludeGenres()

Описание: Добавляет фильтр для исключения жанров (оператор !)

Параметры:

  • $genres (string|array): Жанр или массив жанров для исключения

countries()

Описание: Добавляет фильтр по странам

Параметры:

  • $countries (string|array): Страна или массив стран
  • $operator (string): Оператор сравнения (eq, ne, in, nin)

includeCountries()

Описание: Добавляет фильтр для включения стран (оператор +)

Параметры:

  • $countries (string|array): Страна или массив стран для включения

excludeCountries()

Описание: Добавляет фильтр для исключения стран (оператор !)

Параметры:

  • $countries (string|array): Страна или массив стран для исключения

poster()

Описание: Добавляет фильтр по постеру

backdrop()

Описание: Добавляет фильтр по фоновому изображению

Описание: Добавляет фильтр по логотипу

ticketsOnSale()

Описание: Добавляет фильтр по наличию билетов в продаже

Параметры:

  • $ticketsOnSale (bool): Наличие билетов в продаже

videos()

Описание: Добавляет фильтр по видео

networks()

Описание: Добавляет фильтр по сетям

persons()

Описание: Добавляет фильтр по участникам

facts()

Описание: Добавляет фильтр по фактам

fees()

Описание: Добавляет фильтр по сборам

premiere()

Описание: Добавляет фильтр по премьере

premiereRange()

Описание: Добавляет фильтр по диапазону дат премьеры

Параметры:

  • $fromDate (string): Начальная дата в формате dd.mm.yyyy
  • $toDate (string): Конечная дата в формате dd.mm.yyyy
  • $country (string): Страна премьеры (russia, world, usa, ...)

similarMovies()

Описание: Добавляет фильтр по похожим фильмам

sequelsAndPrequels()

Описание: Добавляет фильтр по сиквелам и приквелам

watchability()

Описание: Добавляет фильтр по доступности просмотра

lists()

Описание: Добавляет фильтр по спискам

top10()

Описание: Добавляет фильтр по топ-10

Параметры:

  • $top10 (int): Позиция в топ-10
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

top250()

Описание: Добавляет фильтр по топ-250

Параметры:

  • $top250 (int): Позиция в топ-250
  • $operator (string): Оператор сравнения (eq, ne, in, nin, gt, gte, lt, lte)

updatedAt()

Описание: Добавляет фильтр по дате обновления

Параметры:

  • $updatedAt (string): Дата обновления
  • $operator (string): Оператор сравнения (eq, ne, gt, gte, lt, lte)

createdAt()

Описание: Добавляет фильтр по дате создания

Параметры:

  • $createdAt (string): Дата создания
  • $operator (string): Оператор сравнения (eq, ne, gt, gte, lt, lte)

getFilters()

Описание: Возвращает массив фильтров

Возвращает: array<string, mixed>

notNullFields()

Описание: Исключение записей с пустыми значениями в указанных полях

Параметры:

  • $fields (array): Массив названий полей

reset()

Описание: Сбрасывает все фильтры

setMaxLimit()

Описание: Устанавливает лимит количества элементов в результате запроса Метод устанавливает ограничение на количество возвращаемых элементов в текущем запросе. Используется для пагинации и контроля объема данных. Добавляет фильтр 'limit' в массив фильтров запроса.

Параметры:

  • $int (int): Максимальное количество элементов для возврата (должно быть положительным числом)

Возвращает: self Возвращает текущий экземпляр объекта для поддержки цепочки вызовов (fluent interface)

setPageNumber()

Описание: Устанавливает номер страницы для пагинации результатов Задает номер страницы для получения определенного набора результатов при выполнении запросов с пагинацией. Страницы нумеруются начиная с 1. Значение сохраняется в массиве фильтров под ключом 'page' для последующего использования в API-запросах.

С версии: 1.0.0

Параметры:

  • $int (int): Номер страницы для получения результатов (должен быть больше 0)

Возвращает: self Возвращает текущий экземпляр для цепочного вызова методов

Пример:

PHP
1
2
3
4
5
6
$filter = new MovieSearchFilter();
$filter->page(2)->limit(20); // Получить вторую страницу с 20 результатами
// Использование в цепочке методов
$results = $movieRequests->searchMovies(
$filter->year(2023)->page(3)->limit(50)
);

removeSortByField()

Описание: Удаляет сортировку по указанному полю

Параметры:

  • $field (SortField): Поле для удаления из сортировки

toggleSort()

Описание: Переключает направление сортировки для указанного поля Если сортировка по полю существует, меняет направление на противоположное. Если сортировки нет, добавляет с направлением по умолчанию.

Параметры:

  • $field (SortField): Поле для переключения сортировки

sortBy()

Описание: Добавляет сортировку по указанному полю

Параметры:

  • $field (SortField): Поле для сортировки
  • $direction (SortDirection|null): Направление сортировки (по умолчанию используется рекомендуемое)

addSortCriteria()

Описание: Добавляет критерий сортировки Добавляет новый критерий сортировки к текущему набору. Если критерий для указанного поля уже существует, он будет заменен.

Параметры:

  • $criteria (SortCriteria): Критерий сортировки

hasSortBy()

Описание: Проверяет, установлена ли сортировка по указанному полю

Параметры:

  • $field (SortField): Поле для проверки

Возвращает: bool true, если сортировка по полю установлена, false в противном случае

getSortDirection()

Описание: Возвращает направление сортировки для указанного поля

Параметры:

  • $field (SortField): Поле для получения направления

Возвращает: SortDirection|null Направление сортировки или null, если сортировка не установлена

getSortCriteria()

Описание: Возвращает все критерии сортировки

Возвращает: SortCriteria[] Массив критериев сортировки

setSortCriteria()

Описание: Устанавливает множественные критерии сортировки Заменяет текущие критерии сортировки новым набором.

Параметры:

  • $criteria (SortCriteria[]): Массив критериев сортировки

clearSort()

Описание: Очищает все критерии сортировки

addMultipleSort()

Описание: Добавляет множественные критерии сортировки из массива строк

Параметры:

  • $sorts (array): Массив строк в формате "field:direction" или просто "field"

Пример:

PHP
1
2
3
4
5
$filter->addMultipleSort([
'rating.kp:desc',
'year:asc',
'name' // будет использовано направление по умолчанию
]);

getSortData()

Описание: Преобразует критерии сортировки в параметры для API Формирует строку сортировки в формате, ожидаемом API Kinopoisk.dev. Множественные критерии объединяются запятыми.

Возвращает: array|null Массив с данными о критериях сортировки или null, если критерии не установлены

getSortCount()

Описание: Возвращает количество установленных критериев сортировки

Возвращает: int Количество критериев сортировки

hasAnySorting()

Описание: Проверяет, установлены ли какие-либо критерии сортировки

Возвращает: bool true, если есть хотя бы один критерий сортировки, false в противном случае

getFirstSortCriteria()

Описание: Возвращает первый критерий сортировки

Возвращает: SortCriteria|null Первый критерий или null, если критерии отсутствуют

getLastSortCriteria()

Описание: Возвращает последний критерий сортировки

Возвращает: SortCriteria|null Последний критерий или null, если критерии отсутствуют

sortByImdbRating()

Описание: Сортировка по рейтингу IMDB (по убыванию)

sortByDesc()

Описание: Добавляет сортировку по убыванию

Параметры:

  • $field (SortField): Поле для сортировки

sortByYearOldFirst()

Описание: Сортировка по году выпуска (по возрастанию - сначала старые)

sortByAsc()

Описание: Добавляет сортировку по возрастанию

Параметры:

  • $field (SortField): Поле для сортировки

sortByName()

Описание: Сортировка по названию (по алфавиту)

sortByPopularity()

Описание: Сортировка по популярности (количество голосов Кинопоиска)

sortByCreated()

Описание: Сортировка по дате создания записи (сначала новые)

sortByUpdated()

Описание: Сортировка по дате обновления записи (сначала обновленные)

sortByBest()

Описание: Комбинированная сортировка по рейтингу и году Сначала по рейтингу Кинопоиска (по убыванию), затем по году (по убыванию).

sortByYear()

Описание: Сортировка по году выпуска (по убыванию - сначала новые)

sortByKinopoiskRating()

Описание: Сортировка по рейтингу Кинопоиска (по убыванию)

exportSortCriteria()

Описание: Экспорт критериев сортировки в массив для сериализации

Возвращает: array<array<string, string>> Массив с данными о критериях сортировки

importSortCriteria()

Описание: Импорт критериев сортировки из массива