РазработкиAPI Wrappers
NotKinopoiskPHP
PHP wrapper для API КиноПоиска. Полная документация по использованию NotKinopoiskPHP.
Полная документация PHP библиотеки для работы с Kinopoisk Unofficial API.
📚 Содержание
🚀 Быстрый старт
- Основной клиент - Главный класс для работы с API
- Примеры использования - Готовые примеры кода
- Карта навигации - Интерактивная карта всей документации
📦 Основные компоненты
🔧 Сервисы
- FilmService - Работа с фильмами
- PersonService - Работа с персонами
- MediaService - Работа с медиа
- UserService - Работа с пользователями
📊 Модели данных
- Film - Модель фильма
- Person - Модель персоны
- Staff - Модель съемочной группы
- Review - Модель отзыва
- Image - Модель изображения
- Video - Модель видео
- Fact - Модель факта
- Award - Модель награды
- BoxOffice - Модель кассовых сборов
- Country - Модель страны
- Genre - Модель жанра
- Episode - Модель эпизода
- Season - Модель сезона
- ExternalSource - Модель внешнего источника
- Distribution - Модель дистрибуции
- FilmSearchResult - Модель результата поиска
- PersonSpouse - Модель супруга
- PersonFilm - Модель фильма персоны
- UserVote - Модель голоса пользователя
- FilmCollection - Модель коллекции фильмов
- Filters - Модель фильтров
- RelatedFilm - Модель связанного фильма
- ApiKeyInfo - Модель информации об API ключе
- ApiKeyQouta - Модель квоты API ключа
- MediaPost - Модель медиа поста
🔢 Перечисления (Enums)
- ImageType - Типы изображений
- ReviewOrder - Порядок сортировки отзывов
- ReviewType - Типы отзывов
- FactType - Типы фактов
- ProfessionKey - Ключи профессий
- VideoSite - Сайты видео
- BoxOfficeType - Типы кассовых сборов
- DistributionType - Типы дистрибуции
- RelationType - Типы связей
- Sex - Пол
- ApiVersion - Версии API
- Month - Месяцы
- FilmOrder - Порядок сортировки фильмов
- ContentType - Типы контента
- CollectionType - Типы коллекций
- DistributionSubType - Подтипы дистрибуции
- AccountType - Типы аккаунтов
📤 Ответы API
- DefaultResponse - Базовый ответ
- PaginatedResponse - Пагинированный ответ
- KeywordSearchResponse - Ответ поиска по ключевым словам
⚠️ Исключения
- ApiException - Базовое исключение API
- InvalidApiKeyException - Неверный API ключ
- RateLimitException - Превышение лимита запросов
- ResourceNotFoundException - Ресурс не найден
- KpValidationException - Ошибка валидации
🔗 Интерфейсы
- ModelInterface - Интерфейс модели
- ResponseInterface - Интерфейс ответа
🚀 Быстрый старт
Установка
composer require devcraftclub/kinopoiskapiunofficialtechБазовое использование
<?php
require_once 'vendor/autoload.php';
use NotKinopoisk\Client;
// Создание клиента
$client = new Client('your-api-key');
// Получение фильма по ID
$film = $client->films->getById(301);
echo "Фильм: {$film->getDisplayName()}\n";
echo "Рейтинг: {$film->rating}\n";
echo "Год: {$film->year}\n";📖 Подробные примеры
Работа с фильмами
// Поиск фильмов
$searchResults = $client->films->searchByKeyword('матрица');
// Получение топ фильмов
$topFilms = $client->films->getTop();
// Получение информации о фильме
$film = $client->films->getById(301);
$staff = $client->films->getStaff(301);
$facts = $client->films->getFacts(301);Работа с персонами
// Поиск персон
$persons = $client->persons->searchByName('Том Круз');
// Получение информации о персоне
$person = $client->persons->getById(123);
$films = $client->persons->getFilms(123);Работа с медиа
// Получение изображений
$images = $client->media->getImages(301, ImageType::POSTER);
// Получение видео
$videos = $client->media->getVideos(301);🔧 Конфигурация
Настройка клиента
$client = new Client('your-api-key', [
'timeout' => 30,
'retry_attempts' => 3,
'api_version' => ApiVersion::V2_1
]);Обработка ошибок
try {
$film = $client->films->getById(999999);
} catch (ResourceNotFoundException $e) {
echo "Фильм не найден: {$e->getMessage()}\n";
} catch (RateLimitException $e) {
echo "Превышен лимит запросов\n";
} catch (ApiException $e) {
echo "Ошибка API: {$e->getMessage()}\n";
}📊 Структура проекта
src/
├── Client.php # Основной клиент
├── Services/ # Сервисы для работы с API
│ ├── FilmService.php
│ ├── PersonService.php
│ ├── MediaService.php
│ └── UserService.php
├── Models/ # Модели данных
│ ├── Film.php
│ ├── Person.php
│ ├── Staff.php
│ └── ...
├── Enums/ # Перечисления
│ ├── ImageType.php
│ ├── ReviewOrder.php
│ └── ...
├── Responses/ # Классы ответов
│ ├── DefaultResponse.php
│ ├── PaginatedResponse.php
│ └── ...
├── Exceptions/ # Исключения
│ ├── ApiException.php
│ ├── InvalidApiKeyException.php
│ └── ...
└── Interfaces/ # Интерфейсы
├── ModelInterface.php
└── ResponseInterface.php🧪 Тестирование
Запуск тестов
# Все тесты
XDEBUG_MODE=coverage KINOPOISK_API_KEY=your-key composer test
# Только unit тесты
composer test -- --testsuite=Unit
# Только интеграционные тесты
composer test -- --testsuite=IntegrationПроверка качества кода
# PHPStan анализ
XDEBUG_MODE=coverage KINOPOISK_API_KEY=your-key composer phpstan
# PHP CodeSniffer
composer phpcs📝 Примеры использования
Смотрите папку examples/ для готовых примеров: