incraigulous/contentful-laravel

Laravel的内容管理SDK和工具集。

1.0 2015-08-29 02:00 UTC

This package is auto-updated.

Last update: 2024-09-10 04:31:39 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version Daily Downloads

#已弃用。请使用Contentful的官方PHP SDK。

Laravel Contentful SDK和工具集

为Laravel提供Contentful SDK和一系列工具。包括外观、基础仓库、开箱即用的缓存和缓存管理、通过Artisan命令创建webhook等。

###这是一个Laravel包。

####寻找框架无关的PHP SDK吗?

点击这里查看此包使用的Contentful PHP SDK。

Contentful新手? Contentful是一个以API驱动的CMS。查看他们的网站API文档

##安装

通过运行composer安装

composer require "incraigulous/contentful-laravel:0.0.*"

更新composer

composer update

接下来,将以下内容添加到config/app.php中的服务提供者数组中

'Incraigulous\Contentful\ContentfulServiceProvider',

##配置

发布配置文件

php artisan vendor:publish

这将把contentful.php添加到您的/config文件夹中。

###配置选项

除了URL之外,WebhookUrlBase还可以接受用于自定义URL生成的关键字。您可以将laravel指定为从app:url配置设置生成URL,或将aws指定为根据AWS公共主机名生成URL。

####获取您的OAuth令牌

生成OAuth令牌的说明可以在Contentful的管理API文档中找到。如果您正在动态获取密钥,则可以在Management SDK中创建自己的外观并在那里加载它。

##如何使用它

###使用SDK

添加服务提供者将提供两个外观

Contentful:内容交付SDK
ContentfulManagement:管理SDK

####使用内容交付SDK进行示例调用

以下调用将获取标题中包含单词campus的第一个10个条目。

$result = Contentful::entries()
				->limitByType('CONTENT TYPE ID')
				->where('fields.title', 'match', 'campus')
				->limit(10)
				->get();

以下调用将获取文件大小大于或等于350000字节的第一个5个资产。

$result = Contentful::assets()
              ->where('fields.file.details.size', '>=', 350000)
              ->limit(5)
              ->get();

####使用管理SDK进行示例调用

#####创建新的内容类型

$result = ContentfulManagement::contentTypes()
                ->post(
                    new ContentType('Blog Post', 'title', [
                        new ContentTypeField('title', 'Title', 'Text'),
                        new ContentTypeField('body', 'Body', 'Text'),
                    ])
                );
            );

#####更新内容类型

$contentType = ContentfulManagement::contentTypes()
					->find('CONTENT_TYPE_ID')
					->get();

$contentType['fields'][0]['name'] = 'Post Title';
$result = ContentfulManagement::contentTypes()->put('CONTENT_TYPE_ID', $contentType);

点击这里查看完整的SDK文档。

####缓存所有GET请求结果内容交付SDK的所有默认缓存GET请求结果。管理SDK的GET请求结果不会被缓存,以避免更新版本冲突。

####通过webhook清除您的Contentful缓存您必须在contentful.php配置文件中提供您的OAuth密钥来创建webhook。要创建一个新webhook供cacher监听,请使用Artisan命令

php artisan contentful:create-webhook

这将创建一个Contentful中的webhook,当任何内容更新时,都会将其发布到您的/contentful/flush路由。该包自动提供该路由,并在任何路由被发布到时清除Contentful条目从您的缓存中。

这里有一个技巧: /contentful/flush路由接受getpost,所以您可以通过访问浏览器中的/contentful/flush来随时清除缓存。

如果您想指定一个自定义的webhook URL,怎么办?很简单

php artisan contentful:create-webhook  --url='http://www.myurl.com/webhook'

注意: 缓存仅在您使用Redis和Memcached缓存驱动程序时才起作用。

####覆盖CSRF保护 Laravel自带跨站请求伪造保护,因此您需要覆盖/contentful/flush路由,以便webhook能够成功向您的网站发送数据。有关如何操作的指南请参阅这里

####监听webhook 如果您对服务器进行自动扩展,您可能需要在服务器创建时自动创建一个webhook,并在服务器关闭时将其删除。您可以通过Supervisor运行以下命令来完成此操作。

php artisan contentful:listen

OR

php artisan contentful:listen --url='http://www.myurl.com/webhook'

###贡献

发现错别字或错误? 提交一个pull request。
有什么新功能? 提交一个pull request。
想要一个新功能,但不知道如何实现? 您可以随时询问,如果我认为这是一个好主意,我可能会参与其中。