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

KinopoiskDev PHP Wrapper

Современная PHP библиотека для работы с API kinopoisk.dev ⧉ - неофициальным API КиноПоиска.

Особенности

  • Современный подход - использует PHP 8.3+ атрибуты и строгую типизацию
  • Расширенные фильтры - гибкая система фильтрации с поддержкой диапазонов
  • Автоматическая валидация - декларативная валидация через атрибуты
  • PSR стандарты - совместимость с PSR-3 для логирования
  • Активная поддержка - Telegram группа ⧉ с 7,908 участниками
  • Модульная архитектура - четкое разделение ответственности

Установка

Bash
composer require devcraftclub/kinopoisk-dev-php

Быстрый старт

PHP
<?php

use KinopoiskDev\Http\MovieRequests;
use KinopoiskDev\Filter\MovieSearchFilter;

// Создание клиента
$request = new MovieRequests(apiToken: 'your-api-token');

// Поиск фильмов с расширенными фильтрами
$filter = new MovieSearchFilter();
$filter->withYearBetween(2020, 2024)
       ->withMinRating(7.0, 'kp')
       ->withAllGenres(['драма', 'комедия'])
       ->onlyMovies();

$movies = $request->searchMovies($filter);

// Получение информации о фильме
$movie = $request->getMovieById(301);
echo $movie->name; // "Матрица"

Архитектура

Основные компоненты

  • Kinopoisk - главный класс для работы с API
  • Фильтры - специализированные классы для разных типов поиска
  • Модели - типизированные объекты для данных
  • Атрибуты - декларативная валидация и конфигурация
  • Сервисы - бизнес-логика и утилиты

Структура проекта

Text Only
KinopoiskDev/
├── Attributes/          # PHP 8.3+ атрибуты
├── Contracts/           # Интерфейсы (PSR-3, кэширование)
├── Enums/              # Перечисления
├── Exceptions/         # Специализированные исключения
├── Filter/             # Классы фильтров
├── Http/               # HTTP запросы
├── Models/             # Модели данных
├── Responses/          # Ответы API
├── Services/           # Сервисы
└── Utils/              # Утилиты

Возможности

Поиск фильмов

PHP
1
2
3
4
5
6
7
8
$filter = new MovieSearchFilter();
$filter->withYearBetween(2020, 2024)
       ->withMinRating(7.0, 'kp')
       ->withAllGenres(['драма', 'комедия'])
       ->onlyMovies()
       ->inTop250();

$movies = $kinopoisk->searchMovies($filter);

Поиск персон

PHP
1
2
3
4
5
6
$filter = new PersonSearchFilter();
$filter->onlyActors()
       ->ageRange(30, 50)
       ->withMinRating(7.0, 'kp');

$persons = $kinopoisk->searchPersons($filter);

Работа с изображениями

PHP
1
2
3
4
5
6
$filter = new ImageSearchFilter();
$filter->onlyPosters()
       ->minResolution(1920, 1080)
       ->onlyHighRes();

$images = $kinopoisk->getMovieImages(301, $filter);

Автоматическая валидация

PHP
class Movie {
    #[Validation(required: true, minLength: 1, maxLength: 255)]
    public string $title;

    #[Validation(min: 1900, max: 2030)]
    public int $year;

    #[Sensitive(hideInJson: true)]
    public string $apiToken;
}

Безопасность

  • Атрибут #[Sensitive] - автоматическое скрытие конфиденциальных данных
  • Валидация входных данных - защита от некорректных параметров
  • Типизированные модели - предотвращение ошибок типов

Документация

Полезные ссылки

Поддержка API

  • Telegram: @omdb_dev ⧉ - основная группа поддержки
  • Email: поддержка через Telegram группу
  • Документация: полная документация в этом разделе

Лицензия

MIT License - см. файл LICENSE для деталей.

Сравнение с альтернативами

Особенность KinopoiskDev KinopoiskUnofficialTech
API kinopoisk.dev ⧉ kinopoiskapiunofficial.tech
Поддержка ✅ Активная (Telegram) ❌ Отсутствует
PHP версия 8.3+ 8.3+
Архитектура Модульная Монолитная
Валидация Автоматическая Ручная
Фильтры Расширенные Базовые

Миграция

Если вы используете KinopoiskUnofficialTech, см. руководство по миграции.


KinopoiskDev - современное решение для работы с API КиноПоиска с активной поддержкой и развитием.