millancore / alegra
Alegra SDK
Requires
- php: >=7.2
- doctrine/annotations: ^1.10
- guzzlehttp/guzzle: 6.3
- laminas/laminas-eventmanager: ^3.2
- psr/log: ^1.1
- symfony/options-resolver: ^5.0
Requires (Dev)
- phpunit/phpunit: 7.5
This package is auto-updated.
Last update: 2024-09-10 07:22:22 UTC
README
重要!! 此SDK仅提供通过Alegra API管理 库存 的方法,如果您需要使用其他端点,此SDK已以模块化方式创建,这允许您将其用作框架,简化集成。
Alegra SDK
这是一个用于 alegra.com API 的SDK,旨在简化PHP项目的集成。
安装
PHP 7.2 或更高版本
composer require millancore/alegra
配置
use Alegra\Alegra; use Alegra\Support\Country; $alegra = Alegra::setCredentials([ 'email' => 'alegrauser@email.com', 'token' => 'tokenAuthApiAccess', 'country' => Country::COL ]);
日志记录器(可选)
您可能希望记录与API交互的日志,为此可以设置符合PSR-3的日志记录器(Monolog、Laravel、Symfony等)。
$alegra->setLogger($PSRLogger);
事件(可选)
SDK中的关键过程 [请求、错误、响应] 会触发事件,您可以轻松添加监听器来处理这些事件,允许您在每个情况下做出决定。(通知、统计、错误跟踪等。)
要创建一个监听器类,只需实现 Alegra\Contract\ListenerInterface
并将监听器添加到Alegra实例。
$alegra->addListener($myListener);
每个触发的事件都有两个主要方法来访问事件内容 $event->getName()
和 $event->getParams()
。
使用方法
Alegra 有许多端点,您很可能需要从不同的点使用这些端点,在此SDK中,我们考虑到了简化此任务,为每个组实现了 Facades。
因此,要按ID获取一个产品,就像这样简单。
use Alegra\Support\Facade\Item; $product = Item::get(12);
以下是一个可用Facades的列表,每个Facade都包含方法列表和使用示例。
实体
通过此SDK通过Alegra API调用时,我们获取实体,可以通过以下方式访问每个实体的属性。
$product = Item::get(12); $product->id $product->name $product->...
遵循API文档中存在的相同命名方案。
实体还具有允许以不同方式处理其数据的方法。
数组
$arrayProduct = $product->toArray();
JSON
$jsonProduct = json_encode($product);
集合
实体的某些属性是其他属性的集合,集合是可迭代的对象,允许我们遍历它们以使用存储的实体。
迭代
foreach($product->price as $price) { #Price Entity }
计数
$product->price->count();
数组
$arrayPriceList = $product->price->toArray();
JSON
$jsonPriceList = json_encode($product->price);
异常处理
此SDK根据不同的错误或验证情况处理一系列异常,但所有异常都扩展自 Alegra\Exception\AlegraException
,这简化了异常处理。
use Alegra\Support\Facade\Item; use Alegra\Exception\AlegraException; try { $product = Item::get(12); } catch (AlegraException $exception) { #.... }