Code Monkey home page Code Monkey logo

laravel-seo-by-url's Introduction

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"
php artisan migrate

Are you a visual learner?

We've recorded a video on how to use this package. It's the best way to get started using media library

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'
    ]
]);

Inertia

Use Shared Data

class HandleInertiaRequests extends Middleware
{
    //
    public function share(Request $request)
    {
        return array_merge(parent::share($request), [
            // ...
            
            'seo' => [
                'title' => seo()->meta()->title(),
                'description' => seo()->meta()->description(),
                'keywords' => seo()->meta()->keywords(),
                'og' => seo()->meta()->og(),
                'text' => seo()->meta()->text(),
            ]
        ]);
    }
    //
}
import { Head } from '@inertiajs/vue3'

<Head>
  <title>{{ $page.props.seo.title }}</title>
  <meta name="description" :content="$page.props.seo.description">
</Head>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.