Skip to content

DissNik/laravel-seo-by-url

 
 

Repository files navigation

Laravel 9+ PHP 8+

Prolog

Seo data is stored in the database in the seo table and is linked to pages based on the url, the url is unique for websites, therefore, the seo in this package is built from it

  • Easy to use
  • Not tied to entities
  • All data is cached relative to url and reset by events on the model

Installation

composer require lee-to/laravel-seo-by-url

Publish config

php artisan vendor:publish --provider="Leeto\Seo\Providers\SeoServiceProvider"

MoonShine

if you use the MoonShine, then publish the resource with this command

php artisan seo:moonshine

Get started

For starters, you can choose the best usage approach for you:

  • Facade
use Leeto\Seo\Seo;

// ...

Seo::title('Hello world')
  • Helper
seo()->title('Hello world')
  • DI
use Leeto\Seo\SeoManager;

// ...

public function __invoke(SeoManager $seo)
{
    //
}
  • Ok I prefer to use the helper

Blade directives

Render meta tags

title, descriptions, keywords, og

<html>
<head>
    <!-- // .. -->

    @seo

    <!-- // .. -->
</head>

Render seo text

<div>
    @seoText('Default text')
</div>

Set and save seo data

  • set
seo()->title('Im page title')
  • set and save in database
seo()->title('Im page title', true)
  • other tags
seo()->description('Im page description')
seo()->keywords('Im page description')
seo()->text('Im page description')
seo()->og(['image' => 'link to image'])
  • get value
seo()->meta()->title()
seo()->meta()->description()
seo()->meta()->keywords()
seo()->meta()->text()
seo()->meta()->og()
  • get html tags
seo()->meta()->html()
  • save by model
use Leeto\Seo\Models\Seo;

Seo::create([
    'url' => '/',
    'title' => 'Im title'
]);

Default values

Set in seo config config/seo.php

return [
    'default' => [
        'title' => 'Im title'
    ]
]);

About

Laravel 9+ SEO + MoonShine Resource

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%