Looking to hire Laravel developers? Try LaraJobs

laravel-blog maintained by omercanfs

Description
Laravel blog paketi
Author
Last update
2026/06/03 23:05 (dev-main)
License
Links
Downloads
5

Comments
comments powered by Disqus

Laravel Blog Package

Production-ready, reusable Laravel 11 blog package. Filament admin panel ve Tailwind CSS frontend ile birlikte gelir.

Özellikler

Kategoriler & Etiketler - Sınırsız kategori ve etiket desteği ✅ SEO Dostu - Meta tags, canonical URL, slug, sitemap ✅ Resim Yönetimi - Sınırsız resim, alt text, başlık ve açıklama ✅ İçerik Editörü - Rich text editor, iframe desteği ✅ Görülme Sayacı - Unique visitors analytics ✅ Arama & Filtreleme - Full-text search, kategori ve etiket filtreleme ✅ Sosyal Paylaşım - Facebook, Twitter/X, LinkedIn, WhatsApp, Email ✅ Filament Admin Panel - Profesyonel CRUD arayüzü ✅ Responsive Design - Tailwind CSS ile mobil uyumlu ✅ Slug Yönetimi - Otomatik slug oluşturma

Kurulum

1. Composer ile Package'ı Yükle

composer require omercan/laravel-blog

Eğer private repository kullanıyorsanız, composer.json'ınıza ekleyin:

{
    "repositories": [
        {
            "type": "path",
            "url": "../laravel-blog"
        }
    ]
}

2. Migrasyonları Çalıştır

php artisan migrate

3. Filament Paketini Kurulumunu Tamamla

Eğer daha önce Filament kurulmadıysa:

php artisan filament:install --panels=admin

4. Package'ı Publish Et (İsteğe Bağlı)

Views'i customize etmek için:

php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-views

Config dosyasını customize etmek için:

php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-config

Kullanım

Routes

Blog aşağıdaki route'lar otomatik olarak kaydedilir:

/blog                           - Blog listeleme
/blog/search?q=arama            - Arama
/blog/category/{slug}           - Kategoriye göre yazılar
/blog/tag/{slug}                - Etikete göre yazılar
/blog/{slug}                    - Yazı detayı

Admin Panel (Filament)

Admin panelinde /admin adresinde şu menüler bulunur:

  • Blog Posts - Yazı yönetimi (CRUD)
  • Blog Categories - Kategori yönetimi
  • Blog Tags - Etiket yönetimi

Views Özelleştirme

Views'ı özelleştirmek için vendor'ı publish edin:

php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-views

Views şurada bulunacak: resources/views/vendor/blog/

Frontend Kullanım

Blade template'inde blog linklemek için:

<!-- Blog'a Linkle -->
<a href="{{ route('blog.index') }}">Blog</a>

<!-- Belirli bir yazıya linkle -->
<a href="{{ route('blog.show', $post->slug) }}">{{ $post->title }}</a>

<!-- Kategori -->
<a href="{{ route('blog.category', $category->slug) }}">{{ $category->name }}</a>

<!-- Etiket -->
<a href="{{ route('blog.tag', $tag->slug) }}">#{{ $tag->name }}</a>

Veritabanı Tabloları

  • blog_categories - Kategoriler
  • blog_tags - Etiketler
  • blog_posts - Ana yazı tablosu
  • blog_post_images - Yazı içindeki resimler
  • blog_post_tag - Pivot table (yazı-etiket ilişkisi)
  • blog_post_views - Görülme analytics

Model Relationships

// Post Model
$post->category;        // Kategori
$post->tags;            // Etiketler (Many-to-Many)
$post->images;          // Resimler
$post->views;           // Görülme sayısı

// Category Model
$category->posts;       // Kategorideki yazılar

// Tag Model
$tag->posts;            // Etiketteki yazılar

Scopes (Query Helpers)

// Aktif yazılar
Post::active()->get();

// Yayınlanmış yazılar
Post::published()->get();

// Kategoriye göre
Post::byCategory('teknoloji')->get();

// Etikete göre
Post::byTag('laravel')->get();

// Arama
Post::search('wordpress')->get();

// Öne çıkartılan
Post::featured()->get();

// Kombinasyon
Post::active()->published()->byCategory('teknoloji')->search('php')->get();

Görülme Sayacı

Yazı detay sayfasında otomatik olarak görülme sayılır:

  • Aynı IP'den 24 saat içinde sadece 1 kez sayılır
  • blog_post_views tablosunda detay kayıt tutulur
  • view_count otomatik olarak güncellenir

SEO Meta Tags

Yazı gösterim sayfasında otomatik olarak eklenir:

<meta name="description" content="{{ $post->meta_description }}">
<meta name="keywords" content="{{ $post->meta_keywords }}">
<link rel="canonical" href="{{ $post->canonical_url }}">

<!-- Open Graph (Facebook, LinkedIn vb.) -->
<meta property="og:title" content="{{ $post->title }}">
<meta property="og:image" content="{{ $post->featured_image }}">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">

Sosyal Paylaşım

Yazı detay sayfasında otomatik olarak şu sosyal ağlara paylaşım bağlantıları eklenir:

  • Facebook
  • Twitter/X
  • LinkedIn
  • WhatsApp
  • Email
  • Link Kopyala

Gelişmiş Özellikler

Slug Otomatik Oluşturma

Başlık yazıldıkça slug otomatik olarak oluşturulur:

'Laravel 11 İle Blog Yapımı' → 'laravel-11-ile-blog-yapimi'

Full-Text Search

Yazı başlığı, açıklaması ve içeriğinde arama yapılır:

Post::search('laravel')->get();

Pagination

Yazılar 12'şer sayfalanır (ayarlanabilir):

Post::paginate(config('blog.per_page'));

Config Ayarları

config/blog.php:

return [
    'per_page' => 12,              // Sayfada gösterilecek yazı sayısı
    'enable_comments' => false,    // Yorum sistemi (gelecek)
    'enable_ratings' => false,     // Puan sistemi (gelecek)
    'featured_limit' => 5,         // Öne çıkartılan yazı sayısı
];

Lisans

MIT

Katkı

Katkılarınızı bekliyoruz! Pull request gönderin.

Destek

Sorunuz varsa support@omercan.com ile iletişime geçin.