PHP code example of hardimpactdev / og-image-filament
1. Go to this page and download the library: Download hardimpactdev/og-image-filament 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/ */
hardimpactdev / og-image-filament example snippets
declare(strict_types=1);
namespace App\Data\OgImages;
use App\Models\Article;
final readonly class ArticleOgImageData
{
public function __construct(
public string $label,
public string $title,
public string $description,
public string $url,
) {}
public static function from(Article $article): self
{
return new self(
label: 'Article',
title: $article->title,
description: $article->description,
url: url("/articles/{$article->slug}"),
);
}
}
use App\Data\OgImages\ArticleOgImageData;
use App\Filament\Resources\ArticleResource;
use App\Models\Article;
use Filament\Panel;
use HardImpact\OgImageFilament\OgImageFilamentPlugin;
use HardImpact\OgImageFilament\Sources\ResourceSource;
public function panel(Panel $panel): Panel
{
return $panel->plugin(
OgImageFilamentPlugin::make()
->sources([
ResourceSource::make(ArticleResource::class)
->template('og-images.articles')
->dataUsing(
fn (Article $article): ArticleOgImageData => ArticleOgImageData::from($article),
)
->pathUsing(
fn (Article $article): string => "articles/{$article->getKey()}.png",
),
]),
);
}