incraigulous / contentful-laravel
Laravel的内容管理SDK和工具集。
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
- incraigulous/contentful-sdk: 0.0.*
Requires (Dev)
- mockery/mockery: 0.9.*
- orchestra/testbench: 3.1.*
README
#已弃用。请使用Contentful的官方PHP SDK。
Laravel Contentful SDK和工具集
为Laravel提供Contentful SDK和一系列工具。包括外观、基础仓库、开箱即用的缓存和缓存管理、通过Artisan命令创建webhook等。
###这是一个Laravel包。
####寻找框架无关的PHP SDK吗?
点击这里查看此包使用的Contentful PHP SDK。
##安装
通过运行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
路由接受get
或post
,所以您可以通过访问浏览器中的/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。
想要一个新功能,但不知道如何实现? 您可以随时询问,如果我认为这是一个好主意,我可能会参与其中。