chriskonnertz / open-graph
辅助构建Open Graph元标签的类
Requires
- php: >=7.0
Requires (Dev)
- nesbot/carbon: ~1
This package is not auto-updated.
Last update: 2024-09-19 00:24:37 UTC
README
辅助构建Open Graph元标签的库。
安装
使用文本编辑器将chriskonnertz/open-graph
添加到composer.json
"chriskonnertz/open-graph": "~2"
或者通过控制台
composer require chriskonnertz/open-graph
未来使用composer update
更新到Open Graph Builder的最新版本。
此库需要PHP >=7.0。
框架支持
Laravel >=5.5可以自动检测此包,因此您可以忽略此部分。在Laravel 5.0-5.4中,您必须编辑您的config/app.php
配置文件。您可以添加一个对象别名,以便通过new OpenGraph()
创建新实例...
'aliases' => [ ... 'OpenGraph' => 'ChrisKonnertz\OpenGraph\OpenGraph', ],
...或者添加一个外观别名(这是Laravel >=5.5通过包自动发现所发生的情况),这样您就不需要自己创建实例,但可以通过伪静态方法访问它。如果您选择此路径,还必须在配置文件中添加服务提供者
'aliases' => [ ... 'OpenGraph' => 'ChrisKonnertz\OpenGraph\OpenGraphFacade', ], ... 'providers' => [ ... 'ChrisKonnertz\OpenGraph\OpenGraphServiceProvider', ],
如果需要重置外观的底层实例(OpenGraph对象),请调用
OpenGraph::clear()
。
简介
示例
$og = OpenGraph::title('Apple Cookie') ->type('article') ->image('http://example.org/apple.jpg') ->description('Welcome to the best apple cookie recipe never created.') ->url();
如下在模板中渲染这些标签
{!! $og->renderTags() !!}
提供Open Graph标签可以丰富网页。缺点是额外花费一些时间,因为每个模型都有自己的方式来生成这些标签。遵循官方协议也很重要。阅读文档了解有关可用的标签及其支持值的更多信息,或查看示例。请注意,此实现遵循OGP.me的规范,不支持Facebook创建的增强功能。
添加标签和属性
添加基本标签
$og->title('Apple Cookie') ->type('article') ->description('A delicious recipe') ->url() ->locale('en_US') ->localeAlternate(['en_UK']) ->siteName('Cookie Recipes Website') ->determiner('an');
如果未向
url
方法传递任何参数,则应用当前URL。请注意,如果设置了环境变量APP_URL
,则考虑该变量。此外,当通过CLI执行时,如果没有设置APP_URL
,则域名将为localhost
。
请注意,DateTime
对象将被转换为ISO 8601字符串。
添加带有属性的标签
您可以添加image
、audio
或video
标签,并传递基本值(对象的URL)和额外的属性数组。
$og->image($imageUrl, [ 'width' => 300, 'height' => 200 ]); $og->audio($audioUrl, [ 'type' => 'audio/mpeg' ]); $og->video($videoUrl, [ 'width' => 300, 'height' => 200, 'type' => 'application/x-shockwave-flash' ]);
添加类型属性
一些对象类型(由type
标签确定)有自己的带有属性的标签,但没有基本标签。这些是article
、book
和profile
。
$og->article([ 'author' => 'Jane Doe' ]); $og->book([ 'author' => 'John Doe' ]); $og->profile([ 'first_name' => 'Kim', 'last_name' => 'Doe' ]);
添加属性
Facebook支持不仅仅是基本对象类型。要为非记录对象类型添加属性,您可以使用attributes
方法。
无自定义验证规则
$og->attributes('product', ['product:color' => 'red']);
带有自定义验证规则
$og->attributes('product', ['product:color' => 'red'], ['product:color']);
此方法执行的唯一验证是检查所有属性名称是否与属性名称列表匹配。
添加标签多次
属性可以有多个值。多次添加标签以实现此效果。
$og->image('http://example.org/apple.jpg') ->image('http://example.org/tree.jpg');
添加基本标签第二次将覆盖第一个标签的值。基本标签不应存在多次。
验证
如果启用验证(默认禁用)添加标签将触发验证。验证并不涵盖完整的规范,但涵盖一些重要部分。如果验证失败,则方法将抛出异常。
验证检查标签值是否合法以及属性类型是否已知。
通过方法启用验证
$og->validate();
通过构造函数
$og = new OpenGraph(true);
禁用验证
$og->validate(false);
杂项
确定是否存在一个标签
$hasTitle = $og->has('title');
从列表中移除一个标签
$og->forget('title');
从列表中移除所有标签
$og->clear();
添加一个自定义标签
$og->tag('apples', 7);
要禁用自动前缀,请传递第三个参数:
$og->tag('apples', 7, false)
获取最后一个标签(按名称)
$tag = $og->lastTag('image'); $value = $tag['value'];
标签以包含键值对的数组形式存储。
状态
此存储库的状态:维护中。如果您创建一个问题,您通常会在48小时内收到回复。