devcraftclub / kinopoiskapiunofficialtech
PHP wrapper для Kinopoisk Unofficial API
Fund package maintenance!
Gokujo
Ko Fi
paypal.me/MaximH
sobe.ru/na/devcraftclub
yoomoney.ru/to/41001454367103
www.donationalerts.com/r/maharder
Requires
- php: ^8.3
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.8
- vlucas/phpdotenv: ^5.5
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
Suggests
- ext-openssl: Для HTTPS соединений
- ext-zlib: Для сжатия данных
This package is auto-updated.
Last update: 2025-07-25 10:20:26 UTC
README
NotKinopoiskPHP
Современная PHP библиотека для работы с Kinopoisk API, написанная с использованием PHP 8.3+ и современных практик разработки.
📋 Краткая информация
NotKinopoiskPHP - это полнофункциональная PHP библиотека для работы с Kinopoisk Unofficial API. Библиотека предоставляет удобный интерфейс для получения информации о фильмах, сериалах, персонах и других данных из базы Кинопоиска.
⚠️ Важно: Данная библиотека работает с Kinopoisk Unofficial API (kinopoiskapiunofficial.tech), НЕ путать с kinopoisk.dev. Структура API последний раз обновлялась 16.10.2023, но данные актуальны.
📋 Минимальные требования
Системные требования
- PHP: 8.3 или выше
- Composer: 2.0 или выше
- Расширения PHP:
curl
- для HTTP запросовjson
- для работы с JSON даннымиmbstring
- для работы с многобайтовыми строками
Рекомендуемые расширения
openssl
- для HTTPS соединенийzlib
- для сжатия данныхintl
- для интернационализации
Поддерживаемые платформы
- Linux (Ubuntu 20.04+, CentOS 8+, Debian 11+)
- macOS (10.15+)
- Windows (10+, с WSL2 рекомендуется)
Проверка требований
Для проверки соответствия требованиям выполните:
# Проверка версии PHP php --version # Проверка расширений PHP php -m | grep -E "(curl|json|mbstring|openssl)" # Проверка Composer composer --version
🎯 Основные возможности:
- Получение информации о фильмах - детальная информация, рейтинги, актеры, режиссеры
- Поиск фильмов - по названию, жанрам, годам, рейтингам
- Работа с персонами - поиск актеров, режиссеров, получение фильмографии
- Коллекции фильмов - топ-250, популярные фильмы, премьеры
- Медиа контент - постеры, кадры, трейлеры, отзывы
- Типобезопасность - строгая типизация с использованием PHP 8.3+ features
- Современная архитектура - readonly свойства, enums, comprehensive документация
📊 Статистика:
- Версия PHP: 8.3+
- Покрытие тестами: 95%+
- Количество моделей: 25+
- Количество сервисов: 5
- Поддерживаемые API эндпоинты: 20+
🚀 Особенности
- Современный PHP 8.3+ - использует последние возможности языка
- Типизированные Enums - для типобезопасности и читаемости кода
- Readonly свойства - неизменяемые объекты для надежности
- Полная документация - подробные PHPDoc комментарии на русском языке
- Тесты - покрытие кода unit-тестами
- OpenAPI совместимость - основан на официальной спецификации API
📦 Установка
composer require devcraftclub/kinopoiskapiunofficialtech
🔧 Конфигурация
Создайте файл .env
на основе .env.example
:
cp .env.example .env
И добавьте ваш API ключ:
KINOPOISK_API_KEY=your_api_key_here
🎯 Быстрый старт
<?php require_once 'vendor/autoload.php'; use NotKinopoisk\Client; use NotKinopoisk\Enums\ContentType; use NotKinopoisk\Enums\ImageType; use NotKinopoisk\Enums\CollectionType; // Создание клиента $client = new Client(); // Получение информации о фильме $film = $client->films()->getById(301); // Матрица echo "Фильм: {$film->getDisplayName()}\n"; echo "Тип: {$film->type->getDisplayName()}\n"; // Проверка типа контента if ($film->type->isFilm()) { echo "Это фильм!\n"; } elseif ($film->type->isSeries()) { echo "Это сериал!\n"; } // Получение изображений определенного типа $posters = $client->films()->getImages(301, ImageType::POSTER); echo "Получено постеров: " . count($posters) . "\n"; // Получение топ-250 фильмов $top250 = $client->films()->getCollections(CollectionType::TOP_250_MOVIES); echo "Фильмов в топ-250: {$top250->getCount()}\n";
📚 Enums
Библиотека использует типизированные enums для обеспечения типобезопасности. Подробная документация по всем перечислениям доступна в документации по enums и примерах использования.
🧪 Тестирование
Для запуска тестов используйте команду composer test
. Подробная информация о тестировании доступна в документации.
📖 Документация
- 📚 Полная документация: docs/README.md - Подробное описание всех классов, методов и примеров
- 🚀 Примеры использования: examples/README.md - Готовые примеры для быстрого старта
- 🔧 Интерактивное меню: examples/index.php - Удобное меню для запуска примеров
🔄 API
Полная документация по API доступна в документации сервисов и примерах использования.
🏗️ Архитектура
Библиотека построена на принципах:
- Неизменяемость - все модели используют readonly свойства
- Типобезопасность - строгая типизация и enums
- Разделение ответственности - отдельные сервисы для разных сущностей
- Документированность - подробные PHPDoc комментарии
- Тестируемость - покрытие unit-тестами
⚠️ Важные предостережения
📅 Актуальность API
- Структура API в последний раз обновлялась 16.10.2023, но данные по запросам актуальны
- Некоторые методы запросов API не возвращают актуальные данные, либо разработчик далее не разрабатывал, либо Кинопоиск не возвращает эти данные (не знаю, я не разрабатывал этот API)
🔗 Не путать с kinopoisk.dev
- Данная библиотека работает с Kinopoisk Unofficial API (kinopoiskapiunofficial.tech)
- НЕ путать с kinopoisk.dev - это другой API с другой структурой и возможностями
📊 Ограничения
- API имеет лимиты на количество запросов
- Некоторые эндпоинты могут быть недоступны или возвращать неполные данные
- Рекомендуется всегда обрабатывать ошибки и проверять возвращаемые данные
🤝 Вклад в проект
- Форкните репозиторий: https://github.com/DevCraftClub/NotKinopoiskPHP
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature
) - Зафиксируйте изменения (
git commit -m 'Add amazing feature'
) - Отправьте в ветку (
git push origin feature/amazing-feature
) - Откройте Pull Request
📄 Лицензия
Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.