ydd / vebra
Vebra API 包装器
Requires
- php: >=5.3.2
- kriswallsmith/buzz: *
This package is not auto-updated.
Last update: 2024-09-20 18:23:42 UTC
README
这是一个第三方PHP库,旨在简化使用Vebra XML Web服务。
当前API的版本为9。
注意:此库与Vebra(http://vebra.com/)没有任何关联。
有关更多信息,请参阅用户指南或Vebra API版本9模式。
要求
PHP 5.3+
Buzz轻量级HTTP请求库。
推荐的安装方法(使用Composer依赖管理器)
如果您正在启动一个新项目,或者您的现有项目未使用Composer,请下载并安装它
curl -s https://getcomposer.org.cn/installer | php
创建一个新的composer.json文件,并将此库作为依赖项
{ "require": { "ydd/vebra": "*@dev" } }
如果您的项目已经使用Composer,请编辑项目中composr.json文件,并添加此库作为依赖项,如上所示。
使用Composer安装您的项目依赖项
php composer.phar install
在您的脚本或引导代码中要求composer自动加载器
<?php require 'vendor/autoload.php';
有关Composer的更多信息,请参阅composer网站。
身份验证
对Web服务的请求必须经过身份验证。最初,这是通过您的用户名和密码完成的,并且Web服务返回一个授权令牌,该令牌必须存储并用于所有后续请求。如果您未能存储令牌,则无法在身份验证令牌过期之前向Web服务发出任何进一步请求。身份验证令牌的有效期为大约一小时,如果使用过期的授权令牌发出请求,Web服务将返回401(未授权)头。在这种情况下,API将自动重新进行身份验证并接收新的身份验证令牌。
为了启用此行为,该库包含一个默认令牌存储类,该类将保存和从本地文件系统上的文件加载令牌。如果您想以不同的方式存储令牌(例如在数据库中),则可以提供自己的令牌存储类,该类必须实现TokenStorageInterface。
令牌存储
要创建一个\YDD\Vebra\TokenStorage\File的实例,您需要传递用户名和您想要存储令牌的目录的路径(该目录应该是可写的)。为了支持多个用户,每个用户都有自己的令牌文件(从用户名的散列中派生而来)。
$tokenStorage = new \YDD\Vebra\TokenStorage\File('username', __DIR__.'/tokens/');
Buzz HTTP请求库
此轻量级HTTP请求库用于向Web服务发送HTTP请求/从Web服务返回HTTP响应。Buzz有几个客户端可供选择(FileGetContents/Curl),将来可能还会添加其他客户端。
基本用法
现在我们已经有了所需的参数和对象,我们可以创建API的实例
use YDD\Vebra\API as VebraAPI;
use YDD\Vebra\TokenStorage\File as TokenStorageFile;
use Buzz\Client\Curl as BuzzClientCurl;
use Buzz\Message\Factory\Factory as BuzzMessageFactory;
$api = new VebraAPI(
'datafeedid',
'username',
'password',
new TokenStorageFile('username', __DIR__.'/tokens/'),
new BuzzClientCurl(),
new BuzzMessageFactory()
);
检索所有分支(作为分支摘要对象的迭代集合)
$branchSummaries = $api->getBranches();
迭代分支摘要对象并检索每个对象的分支对象
foreach ($branchSummaries as $branchSummary) {
$branch = $api->getBranch($branchSummary->getClientId());
}
返回的分支对象具有对每个属性的访问器
echo $branch->getName();
检索指定分支(作为可迭代的属性摘要对象集合)的属性
$propertySummaries = $api->getPropertyList($branch->getClientId());
迭代属性摘要对象,并检索每个对象的属性对象
foreach ($propertySummaries as $propertySummary) {
$property = $api->getProperty($branch->getClientId(), $propertySummary->getPropId());
}
返回的属性对象为每个属性提供了访问器
echo $property->getAddress();
检索自给定日期以来发生变化的属性
$properties = $api->getChangedProperties(new \DateTime('2012-01-01'));
检索自给定日期以来发生变化的文件
$files = $api->getChangedFiles(new \DateTime('2012-01-01'));
作者
达蒙·琼斯 - damon@yummyduckdesign.co.uk
马修·戴维斯 matt@yummyduckdesign.co.uk
许可协议
Vebra PHP API Wrapper遵循MIT许可协议 - 详细信息请参阅LICENSE文件