Package is abandoned and soon will be completely removed. Migrate on this package.
You must update your application soon as possible!
При помощи данного пакета вы сможете интегрировать сервис по работе с 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.
Более подробную информацию о том, как можно использовать слушателей событий вы можете найти по этой ссылке.
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 can be found here.
If you will find any package errors, please, make an issue in current repository.
This is open-sourced software licensed under the MIT License.