cfxmarkets/php-public-models

此包提供了CFX的所有公共数据对象。


README

此库代表CFX当前的公共PHP数据模型集。本README将关注围绕此库提供的类(非常少的)一般业务信息。有关每个资源类业务逻辑的深入讨论,请参阅API文档。(您可以通过将其内容粘贴到http://editor.swagger.io的编辑器中来更轻松地查看该文档。)有关CFX数据模型实现的深入讨论,请参阅php-jsonapi-objectsphp-persistence

安装

可以使用标准的composer过程安装此库

composer require cfxmarkets/php-public-models

概述

目前,CFX主要在两个数据领域操作:经纪商领域和交易所领域。

经纪商领域封装与CFX经纪商相关的对象和操作。这包括用户、法律实体、订单意向、订单、地址、银行账户、资产、资产意向、交易室、出价室、出价等。简而言之,任何与经纪商相关的数据都将存在于经纪商领域。

交易所领域封装与CFX交易所相关的对象和操作。这包括经纪商、订单、资产和交易。(大多数这些在撰写本文时尚未实现。)

用法

此库中大部分重要信息都存在于类级别。也就是说,您真正想了解的是1)存在哪些类;2)如何使用它们。您可以通过简单地浏览这些类本身来最轻松地获取这些信息。但是,如果您还没有这样做,您可能想花一点时间熟悉以下段落和示例中详细说明的此库预期的使用方式。

通常,此库中的类依赖于获取器和设置器来操作其数据。它们还包含一些常见的更新和持久化操作,例如updateFromDataupdateFromResourcesaveinitializerefresh。您可以使用这些方法(以及其他一些方法)在CFX的所有公共模型类上,因为这些方法是我们的资源对象基于的底层ResourceInterface的一部分。

因此,以下是一个常见的使用这些对象的示例。假设$cfx是来自php-brokerage-sdk库的CFX经纪商客户端。

$user = $cfx->users->get("id=abc123");

$name = $user->getName();
$street1 = $user->getAddress()->getStreet1();
$street2 = $user->getAddress()->getStreet2();
$city = $user->getAddress()->getCity();
$state = $user->getAddress()->getState();
$country = $user->getAddress()->getCountry();
$zip = $user->getAddress()->getZip();

$orderIntent = $cfx->orderIntents->create()
    ->setType('sell')
    ->setPriceHigh(2.50)
    ->setPriceLow(2.10)
    ->setAsset($cfx->assets->get("id=INVT001"))
    ->setAssetOwner($user->getPersonEntity())
    ->setBankAccount($user->getBankAccounts()[0])
;

// (This is future functionality not implemented at the time of this writing)
if ($user->isAtLeast('financial-advisor')) {
    $orderIntent->setReferralKey($user->getId());
}

$orderIntent->save();

....

请注意,这里的大多数调用都是简单的获取器和设置器。其中一个不是(User::isAtLeast)尚未实现,但它是一个很好的示例,说明了可能通过非设置器/获取器方法引入的功能类型。

除此之外,没有太多其他需要指出。从这里开始,您应该研究一下提到的API文档,并开始编写代码!

关于API文档的注意事项

我们希望尽快上线一个网站(developers.cfxtrading.com),以便为我们提供更全面的API文档和其他开发资源。虽然这个网站目前还没有上线,但您仍然可以通过克隆库、安装Sami并运行sami.phar update sami.config.php来为这个库生成良好的API文档。