Skip to content

XMF Kelas Metagen

Kelas Metagen dalam Rangka Kerja XMF menyediakan kit alat yang komprehensif untuk menjana dan mengurus teg meta HTML, teg Graf Terbuka dan metadata lain yang berkaitan dengan SEO.

Kelas Metagen mengendalikan:

  • Teg meta standard HTML (huraian, kata kunci, dsb.)
  • Buka tag meta Graf untuk perkongsian sosial
  • Tag meta Kad Twitter
  • Data berstruktur dan JSON-LD
  • URL kanonik
  • Spesifikasi bahasa dan tempat
namespace Xmf;
class Metagen
{
protected $meta = [];
protected $ogTags = [];
protected $twitterTags = [];
protected $jsonLd = [];
protected $canonicalUrl;
protected $language;
public function __construct() {}
public function setDescription(string $description): self {}
public function setKeywords(string $keywords): self {}
public function renderAll(): string {}
}
use Xmf\Metagen;
$metagen = new Metagen();
// Set basic meta tags
$metagen->setDescription('This is my awesome website');
$metagen->setKeywords('php, xoops, web development');
// Render to HTML
echo $metagen->renderAll();
// Output:
// <meta name="description" content="This is my awesome website" />
// <meta name="keywords" content="php, xoops, web development" />

Teg Graf Terbuka membantu mengawal cara kandungan dipaparkan apabila dikongsi di media sosial.

$metagen = new Metagen();
$metagen->setOpenGraphProperty('og:title', 'My Awesome Article');
$metagen->setOpenGraphProperty('og:description', 'Learn how to use Metagen for SEO');
$metagen->setOpenGraphProperty('og:image', 'https://example.com/image.jpg');
$metagen->setOpenGraphProperty('og:url', 'https://example.com/article');
$metagen->setOpenGraphProperty('og:type', 'article');
echo $metagen->renderAll();

JSON-LD menyediakan data berstruktur yang boleh difahami dengan lebih baik oleh enjin carian.

$metagen = new Metagen();
$articleData = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => 'Understanding XOOPS 4.0',
'description' => 'A comprehensive guide to XOOPS modernization',
'image' => 'https://example.com/article.jpg',
'datePublished' => '2026-01-31T10:00:00Z',
'dateModified' => '2026-01-31T15:00:00Z',
'author' => [
'@type' => 'Person',
'name' => 'John Developer',
'url' => 'https://example.com/author'
]
];
$metagen->setJsonLd($articleData);
echo $metagen->renderAll();
namespace MyModule\Controller;
use Xmf\Metagen;
use MyModule\Repository\ArticleRepository;
class ArticleController
{
public function viewAction($id)
{
$repository = new ArticleRepository();
$article = $repository->getById($id);
if (!$article) {
return $this->notFound();
}
// Initialize Metagen
$metagen = new Metagen();
// Set article metadata
$metagen->setTitle($article->getTitle());
$metagen->setDescription(
substr($article->getBody(), 0, 160)
);
$metagen->setKeywords(
implode(', ', $article->getTags())
);
$metagen->setAuthor($article->getAuthorName());
// Open Graph
$metagen->setOpenGraphProperty('og:type', 'article');
$metagen->setOpenGraphProperty('og:title', $article->getTitle());
$metagen->setOpenGraphProperty('og:description', $article->getExcerpt());
$metagen->setOpenGraphProperty('og:image', $article->getFeaturedImage());
$metagen->setOpenGraphProperty('og:url', $article->getUrl());
// Canonical URL
$metagen->setCanonicalUrl($article->getUrl());
// Store in template
$this->template['metagen'] = $metagen;
return $this->render('article/view.php');
}
}
<!-- In your template header -->
<?php if (isset($metagen)): ?>
<?php echo $metagen->renderAll(); ?>
<?php endif; ?>
<!-- Standard HTML structure -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<?php echo $metagen->renderAll(); ?>
<title><?php echo $metagen->getTitle(); ?></title>
</head>
<body>
<!-- Content -->
</body>
</html>
  1. Penerangan unik untuk setiap halaman (150-160 aksara)
  2. Kata kunci yang berkaitan (5-10 kata kunci utama setiap halaman)
  3. URL Kanonik untuk menghalang kandungan pendua
  4. Buka teg Graf untuk pengoptimuman media sosial
  5. Data berstruktur untuk hasil carian yang dipertingkatkan
  6. Port pandangan mudah alih teg meta untuk reka bentuk responsif
$metagen = new Metagen();
// Basic meta tags
$metagen->setTitle('My Website - Web Development Services');
$metagen->setDescription('Professional web development services');
$metagen->setKeywords('web development, php, xoops');
$metagen->setAuthor('John Developer');
$metagen->setLanguage('en');
// Canonical URL
$metagen->setCanonicalUrl('https://example.com/services/web-development');
// Open Graph for social sharing
$metagen->setOpenGraphProperty('og:title', 'Web Development Services');
$metagen->setOpenGraphProperty('og:description', 'Professional services');
$metagen->setOpenGraphProperty('og:image', 'https://example.com/og-image.jpg');
$metagen->setOpenGraphProperty('og:url', 'https://example.com/services/web-development');
$metagen->setOpenGraphProperty('og:type', 'website');
// Twitter Card
$metagen->setTwitterCard('summary_large_image');
$metagen->setTwitterProperty('twitter:site', '@mycompany');
$metagen->setTwitterProperty('twitter:title', 'Web Development Services');
$metagen->setTwitterProperty('twitter:image', 'https://example.com/twitter-image.jpg');
echo $metagen->renderAll();
KaedahParameterKembaliPenerangan
setTitle()rentetandiriTetapkan tajuk halaman
setDescription()rentetandiriTetapkan perihalan meta
setKeywords()rentetandiriTetapkan kata kunci meta
setAuthor()rentetandiriTetapkan nama pengarang
setCanonicalUrl()rentetandiriTetapkan kanonik URL
setLanguage()rentetandiriTetapkan bahasa halaman
setViewport()rentetandiriTetapkan tetapan viewport
setOpenGraphProperty()rentetan, rentetandiriTambah tag OG
setTwitterCard()rentetandiriTetapkan jenis kad Twitter
setJsonLd()tatasusunandiriTetapkan data berstruktur
renderAll()-rentetanRender semua teg meta
  • Pangkalan data - XMF rujukan pangkalan data
  • JWT - JWT pengesahan dalam XMF
  • ../../03-Module-Development/Best-Practices/Frontend-Integration - Amalan terbaik penyepaduan bahagian hadapan