Download the PHP package antonowano/mindbox without Composer
On this page you can find all versions of the php package antonowano/mindbox. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download antonowano/mindbox
More information about antonowano/mindbox
Files in antonowano/mindbox
Informations about the package mindbox
Библиотека для интеграции с Mindbox API
Mindbox - это российская экосистема для email-, sms-, push-рассылок с персонализацией маркетинга и цен.
Эта библиотека предоставляет удобные классы для быстрой интеграции с API-методами Mindbox на PHP. А продуманные интерфейсы помогут быстро расширить функциональность библиотеки.
Установка
Библиотека зависит только от интерфейсов PSR. Для работы нужны реализации:
- PSR-18 / PSR-17 - HTTP-клиент и фабрики запросов/стримов (например, Guzzle:
composer require guzzlehttp/guzzle); - PSR-3 - логгер, если используете
SilentApiClient(например, Monolog:composer require monolog/monolog).
SilentApiClient оборачивает обычный клиент, ловит исключения и пишет их в лог вместо проброса наружу.
Параметры интеграции
Для работы клиента нужны:
| Параметр | Описание |
|---|---|
endpointId |
Идентификатор эндпоинта в Mindbox |
secretKey |
Секретный ключ API |
defaultPrefix |
Префикс операций по умолчанию (например, Website.) |
deviceUuid |
UUID устройства для операций с needDeviceUuid: true |
В боевом приложении deviceUuid берётся из cookie mindboxDeviceUUID
(его выставляет JS SDK Mindbox).
Примеры использования
Синхронный запрос (получить профиль)
Асинхронный запрос (просмотр товара)
Bulk-операция (массовое редактирование клиентов)
Эти же примеры с инициализацией можно найти в папке scripts/.
Свои классы
Для более элегантной работы с библиотекой лучше реализовывать собственные классы
вместо DefaultIntegration, DefaultJsonOperation и других дефолтных реализаций.
Интерфейсы Integration, AsyncOperation, SyncOperation и BulkOperation
как раз для этого и предусмотрены.
CustomIntegration
Вместо DefaultIntegration можно описать своё поведение -
например, читать deviceUuid из cookie:
ViewProduct
Вместо передачи массива в DefaultJsonOperation можно инкапсулировать операцию
в отдельный класс:
Использование:
Такой подход делает вызовы API читаемее: в код передаются доменные данные, а детали формирования запроса остаются в классе операции.
Установка на Laravel
1. Установка пакета
Отдельно ставить Guzzle и логгер не нужно: в Laravel уже есть Guzzle (через фреймворк) и PSR-3 логгер (Log).
2. Переменные окружения
Добавьте в .env:
3. Настройка конфига
Добавьте секцию mindbox в config/services.php:
После изменения .env в production не забудьте пересобрать кэш конфигурации:
В коде значения читаются через config('services.mindbox.*'), а не через env() напрямую.
4. Регистрация в контейнере
В AppServiceProvider (или отдельном сервисе-провайдере):
Если вы не хотите обрабатывать исключения с помощью try..catch,
тогда оберните зарегистрированный клиент классом SilentApiClient.
Все Exception будут направлены в логгер, а само приложение не упадёт.
All versions of mindbox with dependencies
ext-json Version *
psr/log Version ^1.0 || ^2.0 || ^3.0
psr/http-client Version ^1.0
psr/http-factory Version ^1.1