1. Go to this page and download the library: Download oi-lab/oi-laravel-metadata library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
oi-lab / oi-laravel-metadata example snippets
use Illuminate\Database\Eloquent\Model;
use OiLab\OiLaravelMetadata\Concerns\HasMeta;
class Page extends Model
{
use HasMeta; // or HasMetadata / HasOpenGraph individually
}
use OiLab\OiLaravelMetadata\Data\MetadataData;
use OiLab\OiLaravelMetadata\Data\OpenGraphData;
use OiLab\OiLaravelMetadata\Data\OpenGraphImageData;
use OiLab\OiLaravelMetadata\Facades\Meta;
use OiLab\OiLaravelMetadata\Facades\Og;
Meta::update($page, new MetadataData(
title: 'About us',
description: 'Who we are',
keywords: ['team', 'company'],
author: 'OI Lab',
language: 'fr',
robots: 'index, follow',
));
Og::update($page, new OpenGraphData(
type: 'website',
title: 'About us',
url: 'https://example.com/about',
image: new OpenGraphImageData('https://example.com/og.png', 1200, 630),
));
use OiLab\OiLaravelMetadata\Facades\Seo;
Seo::for($page); // shared by @meta, @og, and @jsonLd
use OiLab\OiLaravelMetadata\Data\JsonLdData;
use OiLab\OiLaravelMetadata\Facades\JsonLd;
use OiLab\OiLaravelMetadata\Support\Schema;
JsonLd::update($page, JsonLdData::make(
Schema::article()
->headline('About us')
->datePublished('2026-07-07')
->image('https://example.com/og.png')
->author(Schema::person()->name('OI Lab'))
->publisher(Schema::organization()->name('Acme')),
Schema::breadcrumbList()->itemListElement([
Schema::listItem()->set('position', 1)->name('Home')->item('https://example.com'),
Schema::listItem()->set('position', 2)->name('About')->item('https://example.com/about'),
]),
));
use OiLab\OiLaravelMetadata\Http\Requests\MetadataRequest;
use OiLab\OiLaravelMetadata\Http\Requests\OpenGraphRequest;
public function update(MetadataRequest $request, Page $page)
{
Meta::update($page, MetadataData::from($request->validated()));
}
'settings' => [
'store' => null, // class-string to force a specific SettingStore, else auto-detect
'model' => App\Models\Setting::class,
'key_column' => 'key',
'value_column' => 'value',
'defaults' => [ /* ... */ ],
],