emileperron / fastspring-php
最新FastSpring API的PHP封装库
Requires
- php: >=5.4.0
README
由于FastSpring自己的基于FastSpring Classic的API封装库已被弃用,这是一个针对最新版本FastSpring的非官方API封装库。
不同端点的目的和信息将不会在此处进行文档记录。有关此类信息,请参阅FastSpring的API文档。
入门指南
要开始使用,只需通过Composer要求此包
composer require emileperron/fastspring-php
完成以上步骤后,您就可以在项目中开始使用此库。以下是库的使用和功能的一个简要概述
<?php use Emileperron\FastSpring\FastSpring; use Emileperron\FastSpring\Entity\Order; use Emileperron\FastSpring\Entity\Product; use Emileperron\FastSpring\Entity\Subscription; // First, initialize the library with your API credentials FastSpring::initialize('your-fastspring-api-username', 'your-fastspring-api-password'); // Find all $orders = Order::findAll(); // Find single by ID/path $product = Product::find('mytestproduct'); // Find all with filters $orders = Order::findBy(['products' => 'mytestproduct']); // Find by IDs $subscriptions = Subscription::find(['2XzdAW3_SMSl1I18ccj26A', '9zGdAW3_AM1L6I18cqj21Y']); // Deleting $product->delete(); // Working with entities foreach ($subscriptions as $subscription) { echo $subscription['state'] . "\n"; }
实体
使用此库有两种方式:通过FastSpring
类手动发送请求,以及使用内置实体。
实体提供了一种简单的接口,您可以通过它加载所需的对象并访问其数据。对于FastSpring API提供的每个端点,在Emileperron\FastSpring\Entity
命名空间中都有一个相应的实体。
每个实体都以相同的方式工作,因为它们都扩展了同一个AbstractEntity
类。这为您提供了开始使用API所需的所有基本功能。
获取对象
要使用实体获取数据,只需在所需的实体类上调用静态方法find($ids)
或findAll()
。这两个方法都将返回一个实体数组。所有实体都实现了ArrayAccess
,这意味着您可以使用与数组相同的方式访问它们的数据。
find()
方法允许提供ID数组或单个ID。当您提供一个单一ID时,该方法将直接返回结果实体,而不是返回数组。
删除对象
一旦加载了实体,您就可以调用它上的delete()
方法来删除它。
创建和更新对象
此功能尚未实现。如果您想实现它,请随时提交拉取请求。
手动请求
如果实体不提供您需要的功能,您始终可以使用FastSpring
类进行手动请求。您可以参考FastSpring的API文档,以获取不同端点的确切数据和响应格式以及请求方法。
每个请求方法都有自己的静态方法,它接受两个参数:端点和您希望发送的有效负载。有效负载是可选的,因为GET请求没有有效负载可以用于获取端点的所有ID列表。
以下是一些手动请求的示例
// Making manual requests to the API $response = FastSpring::get('orders'); $response = FastSpring::post('products', [ 'products' => [ [ 'product' => 'mytestproduct', 'sku' => 'my-updated-sku' ] ] ]); $response = FastSpring::delete('orders', ['8UzdwW3_qM6lgI18Pca52y']);
缺少的功能
目前,此库并未将其所有功能都暴露给用户。如果您想添加更多功能,请随时提交拉取请求。
以下是当前库中不可用的功能列表
- 实体的
save()
方法(在AbstractEntity
中部分开发) - 非过滤请求的URL参数(例如,用于本地化)
- 批量请求
- 作用域选项(测试/实时/全部)
贡献
如果您想添加功能或为此库提出改进建议,请随时在GitHub存储库上提交拉取请求。我将尽快审查它们并合并它们。
如果您在遇到问题时无法及时修复,也可以提交问题。
支持
最后,如果您使用这个库并且想支持我,以下是一些您可以做到的方式