Сравнение KinopoiskDev и NotKinopoiskPHP
Обзор
Важно: Это два совершенно разных API от разных команд разработки!
- KinopoiskDev - обертка для неофициального API kinopoisk.dev
- NotKinopoiskPHP - обертка для неофициального API kinopoiskapiunofficial.tech
Эти API не совместимы между собой, имеют разную структуру данных и эндпоинты.
Основные различия
API и разработка
| Аспект | KinopoiskDev | NotKinopoiskPHP |
|---|---|---|
| API | kinopoisk.dev | kinopoiskapiunofficial.tech |
| Статус | Активная разработка, современный API | Стабильный, но менее активная разработка |
| Поддержка | Telegram группа (7,908 участников) | ❌ Даже на Email не отвечают |
| Совместимость | ❌ Не совместим с NotKinopoiskPHP | ❌ Не совместим с KinopoiskDev |
Архитектура библиотек
| Аспект | KinopoiskDev | NotKinopoiskPHP |
|---|---|---|
| Подход | Объектно-ориентированный с использованием атрибутов PHP 8.3+ | Функциональный с использованием трейтов |
| Структура | Модульная с четким разделением ответственности | Монолитная с общими классами |
| Валидация | Декларативная через атрибуты #[Validation] | Ручная валидация в методах |
| Кэширование | Интерфейс CacheInterface с возможностью подключения различных драйверов | Встроенное кэширование |
| Логирование | PSR-3 совместимый LoggerInterface | Простое логирование |
Функциональность
| Функция | KinopoiskDev | NotKinopoiskPHP |
|---|---|---|
| Поиск фильмов | ✅ Расширенные фильтры с поддержкой диапазонов | ✅ Базовые фильтры |
| Поиск персон | ✅ Специализированные фильтры для персон | ✅ Базовый поиск |
| Работа с изображениями | ✅ Фильтры по разрешению, типу | ✅ Базовые возможности |
| Валидация данных | ✅ Автоматическая через атрибуты | ⚠️ Ручная |
| Обработка ошибок | ✅ Специализированные исключения | ✅ Базовые исключения |
| Кэширование | ✅ Гибкая система кэширования | ⚠️ Простое кэширование |
| Логирование | ✅ PSR-3 совместимое | ⚠️ Базовое |
Примеры использования
KinopoiskDev
use KinopoiskDev\Http\MovieRequests;
use KinopoiskDev\Filter\MovieSearchFilter;
$kinopoisk = new MovieRequests(apiToken: 'your-token');
// Поиск с расширенными фильтрами
$filter = new MovieSearchFilter();
$filter->withYearBetween(2020, 2024)
->withMinRating(7.0, 'kp')
->withAllGenres(['драма', 'комедия'])
->onlyMovies();
$movies = $kinopoisk->searchMovies($filter);NotKinopoiskPHP
use NotKinopoiskPHP\Client;
$client = new Client('your-token');
// Поиск с базовыми параметрами
$movies = $client->searchMovies([
'year' => '2020-2024',
'rating.kp' => '7-10',
'genres.name' => 'драма,комедия',
'type' => 'movie'
]);Преимущества KinopoiskDev
1. Современный подход
- Использование PHP 8.3+ атрибутов
- Строгая типизация
- Объектно-ориентированный дизайн
2. Расширенная функциональность
- Более гибкие фильтры
- Специализированные классы для разных типов данных
- Автоматическая валидация
3. Лучшая архитектура
- Модульная структура
- Интерфейсы для расширяемости
- PSR стандарты
4. Безопасность
- Атрибут
#[Sensitive]для конфиденциальных данных - Автоматическое скрытие в JSON/массивах
Преимущества NotKinopoiskPHP
1. Простота использования
- Более простой API
- Меньше кода для базовых операций
- Быстрый старт
2. Совместимость
- Работает с более старыми версиями PHP
- Меньше зависимостей
3. Стабильность
- Более зрелая библиотека
- Больше тестов
Рекомендации по выбору
Выберите KinopoiskDev если:
- Используете PHP 8.3+
- Нужны расширенные возможности фильтрации
- Важна архитектура и расширяемость
- Требуется строгая типизация
- Нужна интеграция с PSR стандартами
Выберите NotKinopoiskPHP если:
- Используете более старые версии PHP
- Нужны только базовые операции
- Важна простота использования
- Требуется максимальная совместимость
Миграция
⚠️ Важно: Прямая миграция между библиотеками невозможна из-за разных API!
Переход с NotKinopoiskPHP на KinopoiskDev
Требуется полный рефакторинг кода, так как:
- Разные API ключи - нужны отдельные ключи для каждого API
- Разная структура данных - модели и ответы не совместимы
- Разные эндпоинты - URL и параметры запросов отличаются
- Разная логика фильтрации - синтаксис фильтров не совпадает
Пример рефакторинга
// NotKinopoiskPHP (старый код)
$client = new Client('token');
$movies = $client->searchMovies(['year' => '2023']);
// KinopoiskDev (новый код) - ПОЛНОСТЬЮ ПЕРЕПИСАТЬ!
$kinopoisk = new MovieRequests(apiToken: 'new-token-for-kinopoisk-dev');
$filter = new MovieSearchFilter();
$filter->year(2023);
$movies = $kinopoisk->searchMovies($filter);Рекомендации по миграции
- Получить новый API ключ на kinopoisk.dev
- Изучить документацию нового API
- Переписать все запросы с нуля
- Обновить обработку ответов под новую структуру данных
- Протестировать все функции
Заключение
KinopoiskDev представляет собой современную библиотеку для официального API kinopoisk.dev с активной поддержкой через Telegram группу (7,908 участников). Это выбор для новых проектов, требующих современного и активно поддерживаемого API.
NotKinopoiskPHP остается стабильным решением для неофициального API kinopoiskapiunofficial.tech, подходящим для проектов, которые уже используют этот API или требуют максимальной совместимости со старыми версиями PHP.
Выбор зависит от:
- Требований к официальности API
- Необходимости активной поддержки
- Совместимости с существующим кодом
- Версии PHP в проекте