byndertest / bynder-php-sdk-test
Bynder PHP 库
Requires
- php: >= 5.6
- guzzlehttp/guzzle: ~6.0
- league/oauth2-client: ^2.3
Requires (Dev)
- mikey179/vfsstream: ~1
- php-coveralls/php-coveralls: ^2.1
- phpdocumentor/phpdocumentor: 2.*
- phpunit/phpunit: 5.5.*
README
此 SDK 的主要目标是加快使用 PHP 的 Bynder 客户的集成速度。这使得连接到 Bynder API (https://bynder.docs.apiary.io) 并在上面执行请求变得更容易。
要求和依赖关系
PHP SDK 需要以下内容才能完全工作
PHP >= 5.6,不建议使用旧版本的 PHPcurl,尽管您可以选择使用自己的非 cURL 客户端
Composer 应该自动处理所有依赖项。
Composer 包
Bynder PHP SDK 以 composer 包的形式发布在 packagist 上,并可在以下位置找到
https://packagist.org.cn/packages/bynder/bynder-php-sdk
安装
此 SDK 依赖于一些库才能工作,使用 Composer 安装时应自动处理所有内容。
要使用 Composer 安装 SDK,请在项目的根目录中运行以下命令
composer require bynder/bynder-php-sdk
为了使用 SDK,我们使用 Composer 的 自动加载 来自动包含所有文件
require_once('vendor/autoload.php');
如何使用
这是一个如何从 Bynder 资产库中检索数据的简单示例。有关更详细的实现示例,请参阅 示例代码。
在向 Bynder API 执行任何请求之前,我们需要实例化 BynderApi 类,以下示例显示了如何使用 BynderApiFactory 来构建一个 BynderApi 实例
$bynder = new BynderClient(new Configuration( $bynderDomain, $redirectUri, $clientId, $clientSecret ));
SDK 允许使用 Guzzle 请求选项。这可以通过在初始化配置对象时传递最后一个参数来完成
$requestOptions = ['proxy' => 'http://MY-PROXY.URL:PORT_NUM']; $bynderApi = BynderClient(new Configuration( ..., $requestOptions ));
在成功配置 BynderClient 服务之后,我们需要获取 AssetBankManager 的实例,以便进行与 Bynder 资产库模块相关的任何 API 调用
$assetBankManager = $bynder->getAssetBankManager();
有了这个,我们就可以开始向 API 发送请求了,下面列出了 可用方法 部分。获取所有 媒体项目 的简短示例
$mediaList = $assetBankManager->getMediaList();
此调用将返回一个包含 Bynder 环境中所有媒体项目的列表。注意,一些调用接受一个查询数组,以便通过 API 调用参数过滤结果(有关更多详细信息,请参阅 Bynder API 文档)。例如,如果我们只想检索 2 张图片,调用将如下所示
$mediaList = $assetBankManager->getMediaList( [ 'limit' => 2, 'type' => 'image' ] );
所有调用都是 异步的,这意味着它们将返回一个 Promise 对象,这使得它更灵活,以便适应任何类型的应用程序。再次强调,对于更详细的示例,本存储库中有一个 应用程序用例。
可用方法
以下是目前在 Bynder PHP SDK 上可用的方法,有关调用更详细的说明,请参阅Bynder API 文档。
BynderClient
处理生成和设置API请求所需的访问令牌的过程。还包括与用户相关的调用。
getAssetBankManager(); getAuthorizationUrl(); getAccessToken(); getUsers(); getUser($userId, $query); getCurrentUser(); getSecurityProfile($profileId);
AssetBankManager
所有与资产银行相关的调用,提供媒体管理的信息和访问。
getBrands(); getMediaList($query); getMediaInfo($mediaId, $versions); getMetaproperties(); getMetaproperty($propertyId); getMetapropertyDependencies($propertyId); getMetapropertyOptions($query); getMetapropetryGlobalOptionDependencies(); getMetapropertyOptionDependencies($propertyId); getMetapropertySpecificOptionDependencies($propertyId, $optionId, $query); getTags(); getCategories(); getSmartfilters(); uploadFileAsync($data); deleteMedia($mediaId); modifyMedia($mediaId, array $data); getDerivatives(); getMediaDownloadLocation($mediaId, $type = 'original'); getMediaDownloadLocationByVersion($mediaId, $version); getMediaDownloadLocationForAssetItem($mediaId, $itemId, $hash = false); createUsage($query); getUsage($query); deleteUsage($query); getCollections($query); getCollectionAssets($collectionId);
测试
使用Docker
构建Docker镜像并标记它
docker build -t bynder-php-sdk-tests
运行测试
docker run bynder-php-sdk-tests
本地运行
安装如上所述的依赖项(这将解决PHPUnit),然后您可以运行测试套件
./vendor/bin/phpunit tests
或者运行单个测试文件
./vendor/bin/phpunit tests/UtilTest.php