tunasahincomtr/metakit
Composer 安装命令:
composer require tunasahincomtr/metakit
包简介
SEO meta management package for Laravel
README 文档
README
Laravel için URL bazlı SEO meta tag yönetim paketi. Her sayfa için özel meta bilgileri tanımlayın, cache desteği ile hızlı çalışın.
Özellikler
- 🎯 URL bazlı meta yönetimi (domain, path, query parametreleri)
- 🚀 Otomatik cache sistemi
- 🎨 Blade direktifleri ile kolay kullanım
- 📱 Open Graph ve Twitter Card desteği
- 📊 JSON-LD schema desteği
- 🔄 RESTful API ile yönetim
- 🛡️ Duplicate meta tag koruması
- 🗺️ Otomatik sitemap oluşturma
- 🎨 Bootstrap uyumlu admin arayüzü
Kurulum
1. Repository'yi Composer'a Ekleyin
composer.json dosyanıza GitHub repository'yi ekleyin:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/tunasahincomtr/meta-kit"
}
]
}
2. Paketi Yükleyin
composer require tunasahincomtr/metakit:dev-main
Alternatif: Eğer paketi projeniz içinde local olarak kullanmak isterseniz:
{
"repositories": [
{
"type": "path",
"url": "modules/packages/tunasahincomtr/metakit",
"options": {
"symlink": true
}
}
]
}
Sonra composer require tunasahincomtr/metakit:"*" komutunu çalıştırın.
3. Config ve Migration
Config dosyasını yayınlayın:
php artisan vendor:publish --tag=metakit-config
Migration'ları çalıştırın:
php artisan migrate
Hepsi bu kadar! Paket Laravel'in auto-discovery özelliği sayesinde otomatik olarak yüklenir.
Hızlı Başlangıç
Blade Template'inde Kullanım
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> @metakit @metakitJsonLd </head> <body> <!-- İçerik --> </body> </html>
@metakit direktifi şunları otomatik oluşturur:
<title>tagı- Meta description, keywords, robots
- Canonical URL
- Open Graph tagları
- Twitter Card tagları
Controller'da Programatik Kullanım
use function TunaSahincomtr\MetaKit\metakit; public function show(Product $product) { metakit() ->setTitle($product->name . ' - Ürün Detayı') ->setDescription($product->description) ->setOgImage($product->image_url); return view('products.show', compact('product')); }
Admin Arayüzü
MetaKit, Bootstrap 5 uyumlu bir admin arayüzü ile gelir. Sadece bir Blade direktifi ile kullanabilirsiniz:
@metakitform
Bu direktif ile şunları yapabilirsiniz:
- ✅ Sayfa ekleme, düzenleme, silme
- ✅ Liste görünümü ile pagination
- ✅ Arama ve filtreleme
- ✅ SEO skoru görüntüleme
- ✅ İstatistikler ve raporlar
- ✅ JSON-LD schema yönetimi
Renk Özelleştirme
Admin arayüzünün renklerini CSS variable ile özelleştirebilirsiniz:
.metakit-form-wrapper { --metakit-primary: #198754; /* Buton arka plan rengi */ --metakit-primary-text: #ffffff; /* Buton metin rengi */ }
API Kullanımı
MetaKit RESTful API ile çalışır. API endpoint'leri:
Public Endpoints (Token gerekmez):
GET /api/metakit/pages- Sayfa listesiGET /api/metakit/pages/{id}- Tek sayfaGET /api/metakit/stats/dashboard- İstatistikler
Protected Endpoints (Token gerekli):
POST /api/metakit/pages- Yeni sayfaPUT /api/metakit/pages/{id}- Sayfa güncelleDELETE /api/metakit/pages/{id}- Sayfa silPOST /api/metakit/pages/import/csv- CSV importGET /api/metakit/pages/export/csv- CSV export
API token oluşturmak için:
$user = User::first(); $token = $user->createToken('api-token')->plainTextToken;
Blade Direktifleri
Tüm Meta Tagları
@metakit
Sadece Title
<title>@metakitTitle</title>
Belirli Meta Değeri
<meta name="description" content="@metakitMeta('description')">
JSON-LD Schema
@metakitJsonLd
JSON-LD Schema Yönetimi
MetaKit ile sayfanıza birden fazla JSON-LD schema ekleyebilirsiniz:
metakit()->addJsonLd([ '@context' => 'https://schema.org', '@type' => 'Article', 'headline' => 'Makale Başlığı', 'author' => [ '@type' => 'Person', 'name' => 'Yazar Adı' ] ]); // Veya Product schema metakit()->addJsonLd([ '@context' => 'https://schema.org', '@type' => 'Product', 'name' => 'Ürün Adı', 'price' => '99.99', 'currency' => 'TRY' ]);
Admin arayüzünde hazır template'ler ile kolayca schema ekleyebilirsiniz:
- Article, BlogPosting
- Product
- FAQPage
- BreadcrumbList
- Organization, WebSite
- LocalBusiness, Person
- Ve daha fazlası...
Sitemap
MetaKit otomatik olarak sitemap.xml oluşturur. Aktif sayfalarınız otomatik olarak sitemap'e eklenir:
GET /sitemap.xml
Config'de özelleştirebilirsiniz:
// config/metakit.php 'sitemap' => [ 'enabled' => true, 'route' => '/sitemap.xml', 'include_images' => true, 'only_active' => true, ],
Cache Yönetimi
MetaKit otomatik cache kullanır. Sayfa oluşturulduğunda, güncellendiğinde veya silindiğinde ilgili cache otomatik temizlenir.
Manuel cache temizleme:
metakit()->purgeCache('example.com', '/products', $queryHash);
Query Hash
URL'deki query parametreleri için farklı meta tanımlamak istediğinizde query hash kullanılır. Sadece config/metakit.php içindeki query_whitelist listesindeki parametreler hash hesaplamasına dahil edilir.
Örnek:
- URL:
https://example.com/products?city=istanbul&type=apartment&page=2 - Whitelist:
['city', 'type'] - Query Hash:
city=istanbul&type=apartmentparametrelerinden oluşturulur pageparametresi hash'e dahil edilmez
Konfigürasyon
config/metakit.php dosyasında aşağıdaki ayarları yapabilirsiniz:
'api_prefix' => 'api/metakit', 'cache_ttl_minutes' => 360, 'query_whitelist' => ['city', 'type', 'price_min'], 'default' => [ 'site_name' => env('APP_NAME', 'Laravel'), 'title_suffix' => ' - ' . env('APP_NAME', 'Laravel'), 'default_image' => '/images/og-default.jpg', ], 'sitemap' => [ 'enabled' => true, 'route' => '/sitemap.xml', ], 'form' => [ 'auth_required' => false, // Admin arayüzü için auth kontrolü ],
Örnekler
Basit Kullanım
<head> @metakit </head>
Dinamik Override
// Controller'da metakit() ->setTitle('Özel Başlık') ->setDescription('Özel Açıklama') ->setCanonical('https://example.com/canonical') ->setOgImage('https://example.com/image.jpg');
API ile Toplu İşlemler
// JavaScript fetch('/api/metakit/pages', { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json', }, body: JSON.stringify({ domain: window.location.hostname, path: window.location.pathname, title: 'Sayfa Başlığı', description: 'Sayfa Açıklaması', status: 'active', }), });
Gereksinimler
- PHP >= 8.1
- Laravel >= 10.0
- Laravel Sanctum (API için)
Lisans
MIT
Destek
Sorularınız için: info@tunasahin.com.tr
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-27