THIS PACKAGE IS ABANDONED
Package is abandoned and soon will be completely removed. Migrate on this package.
You must update your application soon as possible!
Расширенный клиент для работы с B2B API
При помощи данного пакета вы сможете интегрировать сервис по работе с B2B API в ваше Laravel приложение с помощью нескольких простых шагов.
Более подробно о работе самого клиента по работе с B2B API смотрите в его репозитории.
Установка
Для установки данного пакета выполните в терминале следующую команду:
$ composer require avto-dev/b2b-api-php-laravel "^2.0.11"
Для этого необходим установленный
composer
. Для его установки перейдите по данной ссылке.
Обратите внимание на то, что необходимо фиксировать мажорную версию устанавливаемого пакета.
Данный пакет не использует автоматическую регистрацию своего сервис-провайдера (данная возможность появилась в Laravel v5.5.x). Так же рекомендуется создавать свой класс сервис-провайдера, наследовать его от поставляемого с данным пакетом, и уже его регистрировать. Причина данной рекомендации крайне проста - таким образом вы получаете более тонкие возможности переопределения логики инициализации контейнеров и перекрытия поставляемых методы - своими.
После чего создайте в директории ./app/Providers
файл B2BApiServiceProvider.php
со следующим содержимым:
<?php
namespace App\Providers;
use AvtoDev\B2BApiLaravel\B2BApiServiceProvider as VendorB2BApiServiceProvider;
/**
* Class B2BApiServiceProvider.
*/
class B2BApiServiceProvider extends VendorB2BApiServiceProvider
{
//
}
Затем зарегистрируйте этот сервис-провайдер в секции providers
файла ./config/app.php
:
'providers' => [
// ...
App\Providers\B2BApiServiceProvider::class,
]
И "опубликуйте" необходимые для пакета ресурсы с помощью команды:
$ ./artisan vendor:publish --provider="App\Providers\B2BApiServiceProvider"
Данная команда создаст файл
./config/b2b-api-client.php
с настройками "по умолчанию", которые вам следует переопределить на свои.
После чего откройте файл ./config/b2b-api-client.php
и укажите в нем ваши реквизиты для подключения к сервису B2B API.
С новыми версиями пакета могут добавляться новые опции в конфигурационном файле. Пожалуйста, не забывайте время от времени проверять этот момент.
Использование
Данный пакет регистрирует 2 IoC контейнера:
- Репозиторий типов отчетов:
AvtoDev\B2BApiLaravel\ReportTypes\ReportTypesRepository
- Сервис по работе с B2B API:
AvtoDev\B2BApiLaravel\B2BApiService
Репозиторий типов отчетов отвечает за первоначальную загрузку данных о типах отчетов из конфигурационного файла, и предоставляет удобный доступ у ним (методы проверки их наличия, извлечения, и так далее).
Доступ к нему осуществляется как с помощью непосредственного извлечения по имени класса или алиасу, так и с помощью фасада ReportTypesRepositoryFacade
.
Сервис по работе с B2B API предназначен для как для реализации удобного доступа к инстансу самого клиента с помощью метода ->client()
, так и реализует удобные методы по базовым операциям с отчетами (такими как создание, получение контента и обновление данных в отчете, без необходимости ручной генерации токена авторизации). Так же он содержит и другие методы, о чем смотрите исходный код сервиса.
Более подробно о том, как работать с клиентом смотрите в данном репозитории.
Доступ к нему так же осуществляется как с помощью непосредственного извлечения по имени класса или алиасу, так и с помощью фасада B2BApiServiceFacade
.
События
Вы можете установить свои слушатели на следующие события:
-
AvtoDev\B2BApiLaravel\Events\BeforeRequestSending
- происходит перед тем, как осуществляется запрос к сервису B2B API; -
AvtoDev\B2BApiLaravel\Events\AfterRequestSending
- происходит после того, как был осуществлен запрос к сервису B2B API.
Более подробную информацию о том, как можно использовать слушателей событий вы можете найти по этой ссылке.
Testing
For package testing we use phpunit
framework. Just write into your terminal:
$ git clone git@github.com:avto-dev/b2b-api-php-laravel.git ./b2b-api-php-laravel && cd $_
$ composer install
$ composer test
Changes log
Changes log can be found here.
Support
If you will find any package errors, please, make an issue in current repository.
License
This is open-sourced software licensed under the MIT License.