✦ Yazılım & Teknoloji

Laravel ve Filament PHP ile Esnek ve Ölçeklenebilir Admin Panelleri

Y
Yazılım Ekibi Senior Backend Developer
📅 25 Temmuz 2026 • ⏱️ 7 dk okuma • 👁️ 1887 okuma
Laravel ve Filament PHP ile Esnek ve Ölçeklenebilir Admin Panelleri
Modern kurumsal yazılımlarda ve SaaS projelerinde performans, tip güvenliği ve esnek Filament PHP panel mimarisinin detaylı incelemesi.

Modern kurumsal uygulamalarda arka plan yönetim panelinin hızlı ve sezgisel olması operasyonel verimliliği artırır. Laravel ekosisteminin en güçlü mimarilerinden biri olan Filament PHP; modüler widget yapısı, gelişmiş tablo filtreleri ve esnek form bileşenleri sunar. Bu yazıda bir Laravel admin paneli oluştururken Filament'in nasıl kurulduğunu, widget'ların nasıl hazırlandığını ve tablo filtrelerinin nasıl yapılandırıldığını adım adım ele alıyoruz.

Filament PHP Nedir?

Filament, Laravel üzerinde çalışan açık kaynaklı bir arayüz geliştirme çatısıdır. TALL yığını olarak bilinen Tailwind CSS, Alpine.js, Laravel ve Livewire teknolojileri üzerine inşa edilmiştir. Bu sayede ayrı bir JavaScript uygulaması yazmadan, büyük ölçüde PHP kodu ile etkileşimli bir Filament admin panel geliştirmek mümkün olur.

Filament'in öne çıkan bileşenleri şunlardır:

  • Panel Builder: Kimlik doğrulama, menü ve sayfa yapısıyla birlikte eksiksiz bir yönetim paneli iskeleti.
  • Form Builder: Metin alanı, seçim kutusu, dosya yükleme, tekrarlayıcı alanlar gibi esnek form bileşenleri.
  • Table Builder: Sıralama, arama, filtreleme ve toplu işlemler sunan veri tabloları.
  • Widget'lar: Gösterge paneline istatistik kartları, grafikler ve tablolar eklemek için modüler yapı.
  • Bildirimler ve Aksiyonlar: Kullanıcı etkileşimlerini yöneten modal pencereler ve bildirim sistemi.

Neden Filament ile Laravel Yönetim Paneli Geliştirmeli?

Bir Laravel yönetim paneli sıfırdan yazıldığında CRUD ekranları, yetkilendirme, filtreleme ve raporlama gibi tekrar eden işler ciddi geliştirme süresi gerektirir. Filament bu tekrar eden işleri standart bileşenlerle karşılar ve ekibin iş mantığına odaklanmasını sağlar.

  • Hızlı prototipleme: Tek bir Artisan komutuyla bir Eloquent modeli için liste, oluşturma ve düzenleme sayfaları üretilebilir.
  • Ölçeklenebilir mimari: Kaynaklar (resources), sayfalar ve widget'lar ayrı sınıflar halinde düzenlenir; proje büyüdükçe kod tabanı okunabilir kalır.
  • Özelleştirilebilirlik: Tema, renk, menü yapısı ve bileşen davranışları ihtiyaca göre değiştirilebilir.
  • Çoklu panel desteği: Aynı uygulamada yönetici, müşteri veya bayi için ayrı paneller tanımlanabilir.

Filament PHP Kurulumu

Laravel Filament kurulumu birkaç komutla tamamlanır. Aşağıdaki örnekler Filament 3.x sürümünü temel alır. Sürüm gereksinimleri (PHP ve Laravel sürümleri) her ana sürümde değişebildiği için kuruluma başlamadan önce resmi Filament dokümantasyonunu kontrol etmenizi öneririz.

1. Paketi Composer ile Yükleyin

Mevcut bir Laravel projesinin kök dizininde şu komutu çalıştırın:

composer require filament/filament:"^3.2" -W

2. Paneli Kurun

Ardından panel kurulum komutunu çalıştırın. Bu komut, panel ayarlarını içeren bir servis sağlayıcı (AdminPanelProvider) oluşturur:

php artisan filament:install --panels

3. Yönetici Kullanıcısı Oluşturun

Panele giriş yapabilmek için bir kullanıcı oluşturun:

php artisan make:filament-user

Kurulum tamamlandıktan sonra varsayılan olarak /admin adresinden panele erişebilirsiniz.

4. İlk Kaynağınızı (Resource) Oluşturun

Örneğin bir Customer modeli için liste, oluşturma ve düzenleme sayfalarını tek komutla üretebilirsiniz:

php artisan make:filament-resource Customer

Oluşturulan CustomerResource sınıfında form alanlarını form() metodunda, tablo sütunlarını ise table() metodunda tanımlarsınız.

Filament Widget Oluşturma

Gösterge paneli (dashboard), yöneticilerin ilk karşılaştığı ekrandır. Filament widget yapısı sayesinde bu ekrana istatistik kartları, grafikler ve özet tablolar eklemek oldukça kolaydır.

İstatistik Kartı Widget'ı

Aşağıdaki komut, istatistik özet kartları içeren bir widget sınıfı oluşturur:

php artisan make:filament-widget StatsOverview --stats-overview

Oluşturulan sınıfta getStats() metodunu düzenleyerek kartları tanımlayabilirsiniz:

protected function getStats(): array
{
  return [
    Stat::make('Toplam Müşteri', Customer::count()),
    Stat::make('Bu Ayki Siparişler', Order::whereMonth('created_at', now()->month)->count()),
  ];
}

Grafik Widget'ları

Filament, Chart.js tabanlı grafik widget'ları da sunar. php artisan make:filament-widget komutunu çalıştırdığınızda çizgi, çubuk veya pasta grafik gibi türler arasından seçim yapabilirsiniz. Satış trendi, kullanıcı kayıtları veya stok hareketleri gibi verileri görselleştirmek için idealdir.

Widget Düzeni ve Performans İpuçları

  • Widget'ların sıralamasını $sort özelliğiyle belirleyin.
  • Ağır sorgular içeren widget'larda önbellekleme (cache) kullanmayı değerlendirin.
  • Gerekirse $pollingInterval ile verinin belirli aralıklarla yenilenmesini sağlayın veya gereksiz yenilemeyi kapatın.

Filament Tablo Filtreleri

Büyük veri setleriyle çalışan yöneticiler için doğru kaydı hızla bulmak kritik önemdedir. Filament tablo filtreleri, kaynak sınıfının table() metodu içinde filters() dizisiyle tanımlanır.

Seçim (Select) Filtresi

Belirli bir alanın değerine göre filtreleme yapmak için SelectFilter kullanılır:

SelectFilter::make('status')
  ->options([
    'draft' => 'Taslak',
    'published' => 'Yayında',
  ])

Özel Sorgu Filtresi

Daha karmaşık koşullar için Filter sınıfıyla kendi sorgunuzu yazabilirsiniz:

Filter::make('is_featured')
  ->label('Öne Çıkanlar')
  ->query(fn (Builder $query): Builder => $query->where('is_featured', true))

Üçlü (Ternary) Filtre

Evet / hayır / tümü şeklinde üç durumlu filtreleme için TernaryFilter kullanılabilir. Örneğin e-posta adresini doğrulamış ve doğrulamamış kullanıcıları ayırmak için pratik bir çözümdür.

Filtreler; tablo üzerindeki arama, sıralama ve toplu işlemlerle birlikte çalışarak yöneticilerin günlük işlerini önemli ölçüde hızlandırır.

Ölçeklenebilir Bir Filament Admin Panel İçin En İyi Uygulamalar

  1. Yetkilendirmeyi Laravel Policy'leri ile yönetin: Filament, model policy'lerini otomatik olarak dikkate alır; rol bazlı erişim kontrolü bu sayede merkezi olarak yönetilir.
  2. Kaynakları sade tutun: Tekrar eden form alanlarını ve tablo sütunlarını ayrı sınıflara veya yardımcı metotlara taşıyın.
  3. Sorguları optimize edin: İlişkili verilerde eager loading kullanarak N+1 sorgu problemini önleyin.
  4. Panelleri ayırın: Farklı kullanıcı grupları için ayrı paneller tanımlayarak arayüzü ve yetkileri sadeleştirin.
  5. Güncellemeleri takip edin: Ana sürüm yükseltmelerinden önce resmi yükseltme rehberini inceleyin ve test ortamında deneyin.

Sonuç

Filament PHP, Laravel tabanlı projelerde esnek, ölçeklenebilir ve kullanıcı dostu yönetim panelleri geliştirmek için güçlü bir altyapı sunar. Hızlı kurulumu, modüler widget yapısı ve gelişmiş tablo filtreleri sayesinde geliştirme süresini kısaltırken operasyonel verimliliği artırır. tufiworks olarak işletmenizin ihtiyaçlarına özel Laravel admin paneli çözümleri tasarlamak ve geliştirmek için yanınızdayız.

✦ SSS

Sıkça Sorulan Sorular

Bu yazıyla ilgili en çok merak edilenler, kısa ve net yanıtlarıyla.

01 Filament mi Laravel Nova mı?

Her iki araç da Laravel için güçlü yönetim paneli çözümleridir. Laravel Nova, Laravel ekibi tarafından geliştirilen ücretli bir üründür ve arayüzü Vue.js tabanlıdır. Filament ise açık kaynaklı ve ücretsizdir; Livewire üzerine kurulu olduğu için özelleştirmelerin büyük kısmı PHP ile yapılabilir. Lisans maliyeti, ekibinizin teknoloji tercihleri ve özelleştirme ihtiyacınız seçimde belirleyici olmalıdır.

02 Filament PHP ücretsiz mi?

Evet, Filament açık kaynaklı bir projedir ve MIT lisansı ile ücretsiz olarak kullanılabilir. Topluluk tarafından geliştirilen bazı eklentiler ise ücretli olabilir.

03 Filament'i mevcut bir Laravel projesine ekleyebilir miyim?

Evet. Projenizin Laravel ve PHP sürümü kullandığınız Filament sürümünün gereksinimlerini karşılıyorsa, Composer ile paketi yükleyip panel kurulum komutunu çalıştırarak mevcut projenize ekleyebilirsiniz.

04 Filament ile müşteri paneli de oluşturulabilir mi?

Evet. Filament'in çoklu panel desteği sayesinde aynı uygulamada yöneticiler için bir panel, müşteriler veya bayiler için ayrı bir panel tanımlayabilirsiniz.

05 Filament widget'ları gerçek zamanlı veri gösterebilir mi?

Widget'lar belirli aralıklarla kendini yenileyecek (polling) şekilde yapılandırılabilir. Böylece istatistik kartları ve grafikler, sayfa yenilenmeden güncel verileri gösterebilir.

İlginizi Çekebilecek Diğer Yazılar

Fikirlerinizi Canlıya Taşıyalım

Markanız için lüks web tasarımı, özel UI/UX mimarisi veya kurumsal kimlik projesi başlatın.

Proje Başlatın ➔