millancore/alegra

v0.0.4 2020-06-09 21:49 UTC

This package is auto-updated.

Last update: 2024-09-10 07:22:22 UTC


README

Build Status

重要!! 此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) {
    #....
}