contentful/contentful

Contentful 内容交付 API 的 SDK


README

PHP

加入 Contentful 社区 Slack   加入 Contentful 社区论坛

contentful.php — Contentful PHP 交付库

Packagist PHP version Packagist CircleCI

用于 Contentful 内容交付 API内容预览 API 的 PHP 库。它可以帮助您轻松通过 PHP 应用程序访问存储在 Contentful 中的内容。

什么是 Contentful?

Contentful 为数字团队提供内容基础设施,以推动网站、应用程序和设备。与 CMS 不同,Contentful 是为了与现代化软件栈集成而构建的。它提供了一个结构化内容的中心枢纽、强大的管理和交付 API,以及可定制的网络应用程序,使开发人员和内容创作者能够更快地发布他们的产品。

目录

核心功能

入门

为了开始使用 Contentful PHP 库,您不仅需要安装它,还需要获取凭证,这些凭证将允许您访问 Contentful 中的内容。此软件包需要 PHP 7.2 或更高版本或 PHP 8.0 或更高版本。

安装

使用 Composer 安装库

composer require contentful/contentful

您的第一个请求

以下代码片段是您可以使用此库从Contentful获取内容的最基本的代码:所有与库的交互都通过 Contentful\Delivery\Client 进行。要创建新的客户端,必须将访问令牌和空间ID传递给构造函数。

$client = new \Contentful\Delivery\Client(
    'b4c0n73n7fu1', # This is the access token for this space. Normally you get both ID and the token in the Contentful web app
    'cfexampleapi' # This is the space ID. A space is like a project folder in Contentful terms
);

try {
    $entry = $client->getEntry('nyancat');
} catch (\Contentful\Core\Exception\NotFoundException $exception) {
    // Entry does not exist
}

使用此库与预览 API

此库还可以与Preview API一起使用。为了这样做,您需要使用Preview API访问令牌(与获取Delivery API令牌的同一页面上可用),并告诉客户端使用不同的API

$options = \Contentful\Delivery\ClientOptions::create()
    ->usingPreviewApi();
$client = new \Contentful\Delivery\Client($accessToken, $spaceId, $environmentId, $options);

您可以在我们的 参考文档 中找到我们客户端的所有可用方法。

身份验证

要从Contentful获取自己的内容,应用程序应使用OAuth承载令牌进行身份验证。

您可以使用 Contentful Web界面 创建API密钥。转到应用程序,打开您想要访问的空间(左上角列出了所有空间),然后转到API区域。打开API密钥部分并创建您的第一个令牌。完成。

别忘了还要获取您的空间ID。

有关认证的更多信息,请参阅 Contentful REST API认证参考

文档 & 参考

配置

ClientOptions 类允许您以多种不同方式配置客户端

$options = \Contentful\Delivery\ClientOptions::create()
    ->usingPreviewApi()
    ->withDefaultLocale(string $defaultLocale = null)
    ->withHost(string $host)
    ->withLogger(Psr\Log\LoggerInterface $logger)
    ->withCache(Psr\Cache\CacheItemPoolInterface $cache, bool $autoWarmup = false, bool $cacheContent = false)
    ->withHttpClient(GuzzleHttp\Client $client)
    ->withoutMessageLogging()
    ->withQueryCache(Psr\Cache\CacheItemPoolInterface $queryCacheItemPool, int $queryCacheLifetime = 0)
;

$client = new \Contentful\Delivery\Client(
    string $accessToken,
    string $spaceId,
    string $environmentId = 'master',
    ClientOptions $options = null
);

参考文档

PHP库参考 文档说明了此库公开的对象和方法,它们期望的参数以及返回的数据类型。

大多数方法也有示例,展示了如何使用它们。

教程 & 其他资源

  • 此库是我们Contentful Delivery REST API的包装器。有关搜索参数和分页等更多特定细节,请参阅 REST API参考,您还可以更好地了解底层请求的外观。
  • 有关使用PHP与Contentful相关的教程、演示应用程序和更多信息,请参阅 Contentful for PHP 页面。

升级

有关如何从3.x版本升级到4.0.0版本的详细信息,请参阅 版本4.0.0的变更日志条目升级到版本4指南

有关如何从2.x版本升级到3.0.0版本的详细信息,请参阅 版本3.0.0的变更日志条目升级到版本3指南

联系我们

您对如何使用此库有疑问吗?

  • 请联系我们的社区论坛: Contentful Community Forum
  • 加入我们的社区Slack频道:Contentful Community Slack

您发现了一个错误或想提出一个功能吗?

  • 在GitHub上提交问题:File an issue。确保在分享代码前删除任何凭证。

您需要共享机密信息或还有其他问题吗?

  • 在我们的Contentful客户支持处提交支持工单:File support ticket

参与进来

PRs Welcome

重要:目前,API将php-vcr作为开发依赖项,但尚未官方支持PHP8。如果您想在PHP8上进行开发,您需要使用composer install --ignore-platform-reqs安装依赖项以覆盖此要求。

许可证

本存储库在MIT许可下发布。

行为准则

我们希望为所有参与者提供一个安全、包容、欢迎且无骚扰的空间和体验,无论其性别认同和表达、性取向、残疾、外貌、社会经济地位、体型、种族、国籍、经验水平、年龄、宗教(或无宗教)或其他身份标识。

阅读我们的完整行为准则.