webhappens / prismic
Laravel 使用 Prismic.io 的包
v0.8.6
2023-03-08 14:14 UTC
Requires
- php: 7.3 - 8
- laravel/framework: 7 - 10
- prismic/php-sdk: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16|*
- mockery/mockery: ~1.3.3|^1.4.2
- orchestra/testbench: ^5.8|^6.3|^7.0|^8.0
README
Prismic.io 的 Laravel 包装器
此包使您在 Laravel 中使用 Prismic.io 变得超级快速和简单。
- 面向对象设计
- 类似 Eloquent 的查询接口
- 自动将切片和字段渲染为 HTML
- 自动链接解析
- 嵌套文档支持
- 开箱即用的缓存和预览会话
- 增强型网络钩子(即将推出)
文档
Prismic 中的每个自定义类型都应该在您的项目中有一个相应的文档模型。文档模型使您能够轻松查询您的 Prismic 仓库并围绕内容模型组织代码。
定义文档模型
让我们开始创建一个文档模型。所有文档模型都扩展了 WebHappens\Prismic\Document
类。
文档模型最基本和最根本的属性是其 type
属性。该属性指示文档模型对应于哪个 Prismic 自定义类型
<?php namespace App; use WebHappens\Prismic\Document; class Article extends Document { /** * The 'API ID' of the Custom Type associated with the document model. * * @var string */ protected static $type = 'article'; }
注册文档模型
在文档模型可用之前,必须使用 Prismic::documents()
方法在服务提供器中进行注册。通常这会在您的 App\Providers\AppServiceProvider
类的 register
方法中发生。
use App\Article; use WebHappens\Prismic\Prismic; public function register() { Prismic::documents([ Article::class, ]); }
检索文档
一旦您创建了文档模型及其在 Prismic 中的相关内容,您就可以开始从您的仓库中检索数据。
所有文档
您可以使用 all
方法检索特定类型的所有文档。它们将返回在 Laravel Collection 对象中
// Retrieve all Article Documents $articles = Article::all();
分块结果
如果您需要处理大量文档,请使用 chunk
命令。该 chunk
方法将检索一个 "块" 的文档模型,将它们传递给一个给定的闭包进行处理。这将有助于在处理大量结果集时节省内存
// Process each Article in chunks of 100 Article::chunk(100, function ($articles) { foreach ($articles as $article) { // } });
请注意,由于 Prismic API 的限制,最大的块大小为 100。
单个文档
除了检索给定类型的所有文档外,您还可以通过将文档 ID 传递给 find
方法来检索单个记录。此方法返回单个文档实例,而不是 Laravel Collection
// Retrive the Article with an ID of WAjgAygABN3B0a-a $article = Article::find('WAjgAygABN3B0a-a');
单个类型文档
如果您创建了一个单个类型的文档,例如主页,您可以使用 single
方法来检索文档模型实例,而无需传递文档 ID
// Retrieve a Single Type Document $homepage = Homepage::single();