Download the PHP package glook/pecom-sdk without Composer
On this page you can find all versions of the php package glook/pecom-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package pecom-sdk
glook/pecom-sdk
PHP SDK для работы с API транспортной компании ПЭК (https://kabinet.pecom.ru/api/v1).
Низкоуровневый клиент сгенерирован из OpenAPI 3.0.3 спецификации через Jane. Поверх него добавлен ручной фасад, который скрывает детали HTTP, аутентификации и обработки ошибок.
Требования
- PHP
^7.2 || ^8.0 - расширение
ext-json - любой PSR-18 HTTP-клиент (например,
symfony/http-client,guzzlehttp/guzzle,php-http/curl-client) — будет найден автоматически черезphp-http/discovery
Установка
Если в проекте ещё нет PSR-18 клиента, добавьте любой:
Быстрый старт
PecomClientFactory::create() принимает третий необязательный аргумент — собственный Psr\Http\Client\ClientInterface, если автодискавери не подходит:
Архитектура
- Ручной код живёт в
src/подglook\PecomSdk\*. - Generated-код живёт в
generated/подglook\PecomSdk\Generated\*и считается disposable — его можно безопасно удалить и перегенерировать. - Прямой доступ к низкоуровневому клиенту:
$client->raw()→glook\PecomSdk\Generated\Client.
Аутентификация
API ПЭК использует Basic Auth (логин и пароль личного кабинета). Они передаются в PecomClientFactory::create() и автоматически добавляются в каждый запрос через AuthenticationRegistry + BasicAuthAuthentication.
Обработка ошибок
PecomErrorAwareHttpClient оборачивает PSR-18 клиент и анализирует ответы API ПЭК:
| HTTP статус | Исключение |
|---|---|
4xx (валидация) |
PecomValidationException |
| прочие ошибки | PecomApiException |
Оба исключения расширяют RuntimeException и предоставляют:
getMessage()/getCode()— стандартные методы исключенияgetTitle()— заголовок ошибки от ПЭК (если есть)getPayload()— массив с телом ответаgetResponse()— оригинальныйPsr\Http\Message\ResponseInterface
Регенерация SDK
OpenAPI-спецификация лежит в корне монорепы (dist/pecom.json), собирается через npm run build в корне проекта.
После обновления спецификации:
Скрипт:
- запускает
jane-openapi generate --config-file=jane-config.php; - полностью пересоздаёт
generated/(опцияclean-generated); - вызывает
composer dump-autoload.
Конфигурация Jane — в jane-config.php. Изменения в generated/ руками не делать — будут потеряны при следующей генерации.
Разработка
Breaking Changes
Обработка HTTP-ошибок (текущая версия)
-
PecomErrorAwareHttpClient: HTTP-ответы со статусами4xx/5xxтеперь кидаютPecomApiException(илиPecomValidationExceptionдля 400). Потребители, ожидавшие возвратResponseInterfaceпри ошибочных HTTP-статусах, должны перейти наcatch (PecomApiException $e)и использовать$e->getResponse()для получения оригинального ответа. PecomApiExceptionтеперь реализуетPsr\Http\Client\ClientExceptionInterface. Стандартные плагины HTTPlug (ErrorPlugin,RetryPlugin,HistoryPlugin) теперь корректно обрабатывают эти исключения как HTTP-ошибки.
All versions of pecom-sdk with dependencies
ext-json Version *
jane-php/open-api-runtime Version ^6.3 || ^7.0
symfony/serializer Version ^4.4 || ^5.0 || ^6.0
nyholm/psr7 Version ^1.8
psr/http-client Version ^1.0
psr/http-message Version ^1.0
psr/http-factory Version ^1.0
php-http/discovery Version ^1.14
php-http/client-common Version ^2.0
php-http/httplug Version ^2.0