blok/metatags

Laravel的metatags助手

1.1.1 2021-02-24 15:36 UTC

This package is auto-updated.

Last update: 2024-09-13 21:46:53 UTC


README

Build Status styleci Scrutinizer Code Quality SensioLabsInsight Coverage Status

Packagist Packagist Packagist

包描述

Laravel的metatags助手。以更流畅的方式处理常见metatags,以便将其集成到项目中。

安装

通过composer安装

composer require blok/metatags

注册服务提供者

注意!如果您使用laravel>=5.5并具有包自动发现功能,则此步骤和下一步骤是可选的。

将服务提供者添加到config/app.php中的providers部分

Blok\Metatags\ServiceProvider::class,

注册外观

config/app.php中的aliases部分注册包外观

Blok\Metatags\Facades\Metatags::class,

发布配置文件

php artisan vendor:publish --provider="Blok\Metatags\ServiceProvider" --tag="config"

使用方法

要使用Metatags助手,只需将此特性添加到您的模型中。

<?php

class User extends \Illuminate\Database\Eloquent\Model {
    use \Blok\Metatags\Traits\HasMetatags;
}

如何定义metatags?

通过实体添加默认metatags => 您可以通过重写getMetatags()函数来实现。

<?php

class User extends \Illuminate\Database\Eloquent\Model {

    use \Blok\Metatags\Traits\HasMetatags;

    public function getMetatags($override = []){
        $this
            ->setMetaTitle($this->name)
            ->setMetaDescription($this->description)
            ->setMetaKeywords($this->keywords);
        return $this->formatMetatags($override);
    }
}

如何在HTML中添加metatags?

在您的blade文件中,您可以简单地调用这些视图。

@include('metatags.meta', $user->getMetatags())

使用全局Metatags外观

很可能会在主布局模板中放置meta。有一个小助手可以帮助您完成这项工作。

例如,在您的/layouts/html中

@include('metatags.meta', app('metatags')->all())

然后在您的控制器中,您必须定义要检索metatags信息的实体。

app('metatags')->setEntity($user);

您也可以在控制器或AppServiceProvider中设置一些默认或常见metatags。

app('metatags')->setTitle('Default title');

重写默认metatags

在某些情况下,您可能还需要重写实体中的默认metatags。这就是为什么当您输出metatags时,您也可以添加自己的metatags。

@include('metatags.meta', app('metatags')->getMetatags(['title' => 'This will override the default one']))

metatags定义的顺序

  1. 全局定义的metatags
  2. 实体定义的metatags
  3. 重写metatags

metatags回退

当您想要使用与另一个metatags相同的变量来定义默认metatags回退时,可能会很麻烦。

因此,该软件包中包含了一些默认回退(例如,当没有定义og:title时使用metatags标题作为og:title)。

您可以通过导出config.php来覆盖它们,并且不要犹豫提出您自己的!

安全性

如果您发现任何与安全相关的问题,请通过电子邮件而不是使用问题跟踪器。

致谢

此软件包是通过cherrypulp/laravel-package-generator的帮助启动的。