superdesk/contentapi-sdk-php

用 PHP 编写的 Superdesk 内容 API SDK

v0.1 2015-08-26 12:45 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:51 UTC


README

Build Status Scrutinizer Code Quality Code Climate SensioLabsInsight

这是一个用于 Superdesk 内容 API 的 PHP SDK。

有关 Superdesk 内容 API 的更多信息,请阅读文档

安装

需求

  • PHP >= 5.3

当使用 CurlApiClient 和 CurlClient 类时,请确保已安装以下 PHP 扩展

Composer

  • 将 SDK 作为 composer 依赖项要求
$ php composer.phar require superdesk/contentapi-sdk-php

手动

  • 下载 SDK 的副本
  • 将类添加到您的自动加载器

定制

您可以使用自己的客户端类代替 CurlClientCurlApiClient 文件。如果您的框架或项目已经拥有自己的 http 客户端,这将非常有用,您可以轻松地整合它,而不需要多个依赖项。您需要做的就是实现 ClientInterfaceClientApiInterface。对于 ClientApi 类,还有一个有用的抽象类 AbstractApiClient,其中包含一些合理的默认值。

示例

此示例使用了 CurlClientCurlApiClient 文件。

您可以通过命令行运行 example.php

$ php sample/default-client/example.php

确保已启用 cURL多字节字符串 扩展,并且已安装依赖项。

$ php composer.phar install --no-dev

示例

身份验证

OAuth 用户名和密码身份验证。如果之前的令牌无效,CurlApiClient 将自动尝试获取新的访问令牌。

<?php

use Superdesk\ContentApiSdk\ContentApiSdk;
use Superdesk\ContentApiSdk\Client\CurlClient;
use Superdesk\ContentApiSdk\Client\CurlApiClient;
use Superdesk\ContentApiSdk\Api\Authentication\OAuthPasswordAuthentication;

$genericClient = new CurlClient();
$authentication = new OAuthPasswordAuthentication($genericClient);
$authentication
    ->setClientId(API_CLIENT_ID)
    ->setUsername(API_USERNAME)
    ->setPassword(API_PASSWORD);
$apiClient = new CurlApiClient($genericClient, $authentication);
$contentApi = new ContentApiSdk($apiClient, API_HOST, API_PORT, API_PROTOCOL);

?>

分页和遍历结果

我们使用 Pagerfanta 作为分页库。从方法 getItems(...)getPackages(...) 返回的所有结果实际上都是 Pagerfanta 实例。这应该足以遍历您的 API 结果,并构建您自己的分页。

<?php

use Superdesk\ContentApiSdk\ContentApiSdk;

$contentApi = new ContentApiSdk(...);

$maxPerPage = 1;
$startPage = 1;

$items = $contentApi->getItems(array(), $startPage, $maxPerPage);

$items->getNbResults(); // Total items
$items->getMaxPerPage(); // Max results per age == $maxPerPage
$items->getNbPages(); // Total pages

?>