ourgold/exchange
最新稳定版本:2.0.6
Composer 安装命令:
composer require ourgold/exchange
包简介
Tools to communicate with external services
README 文档
README
Установка
composer require ourgold/exchange:^1.0
Note: (при необходимости можно с осторожностью добавить ключ --ignore-platform-reqs)
После завершения установки выполнить команду
php artisan vendor:publish --provider="Ourgold\Exchange\ExchangeServiceProvider" --tag="config"
И обязательно отредактировать параметр api_superclass, указав нужный суперкласс заместо стандартного.
После настройки, выполнить миграцию
php artisan migrate
И добавить команду в планировщик app/Console/Kernel.php метод schedule
$schedule->command('exchange:process-queue')->everyMinute();
Использование
Для использования необходимо реализовать свою версию класса \Ourgold\Exchange\Services\ExternalAPIs
, добавив в него методы, возвращающие инстансы классов для работы с внешними API.
После чего для постановки запросов в очередь необходимо вызвать метод \Ourgold\Exchange\Services\ExchangeService::queue()
Первый аргумент - массив имён методов, которые вызываются друг за другом
(каждый последующий вызывается на результате вызова предыдущего метода)
Второй аргумент - массив аргументов, передаваемых последнему методу из цепочки
Третий аргумент - callback-класс с реализованным методом __invoke, куда передастся результат вызова последнего метода в цепочке
Пример 1
\Ourgold\Exchange\Services\ExchangeService::queue(
[
'exampleAPI',
'users',
'get',
],
null,
\App\TestCallbackHandler::class,
);
Цепочка вызова:
(new \Ourgold\Exchange\Services\ExternalAPIsTest())->exampleAPI()->users()->get();
В данном примере сначала вызовется метод exampleAPI() в классе \Ourgold\Exchange\Services\ExternalAPIs
, который возвращает инстанс класса ExternalAPIExample.
Далее вызовется метод users() класса ExternalAPIExample и наконец метод get()
Аргументы никакие передаваться не будут (второй параметр)
Результат вызова передастся в callback-класс \App\TestCallbackHandler (в magic-метод __invoke)
Пример 2
\Ourgold\Exchange\Services\ExchangeService::queue(
[
'exampleAPI',
'login',
],
['test_login', 'test_password'],
\App\TestCallbackHandler::class,
);
Цепочка вызова:
(new \Ourgold\Exchange\Services\ExternalAPIsTest())->exampleAPI()->login('test_login', 'test_password');
В данном примере сначала вызовется метод exampleAPI() в классе \Ourgold\Exchange\Services\ExternalAPIs
, который возвращает инстанс класса ExternalAPIExample.
Далее вызовется метод login($login, $password) класса ExternalAPIExample с аргументами test_login и test_password
Результат вызова передастся в callback-класс \App\TestCallbackHandler (в magic-метод __invoke)
统计信息
- 总下载量: 348
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-05