B2B Bayi ve CRM Sistemlerinde Veri Güvenliği ve KVKK Uyumluluğu
Kapalı devre çalışan şirket içi panellerde role tabanlı yetkilendirme (RBAC), SQL injection koruması ve veri şifreleme yöntemleri.
Yazıyı Oku ➔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, 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:
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.
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.
Mevcut bir Laravel projesinin kök dizininde şu komutu çalıştırın:
composer require filament/filament:"^3.2" -W
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
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.
Ö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.
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.
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()),
];
}
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.
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.
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',
])
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))
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.
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.
Bu yazıyla ilgili en çok merak edilenler, kısa ve net yanıtlarıyla.
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.
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.
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.
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.
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.
Kapalı devre çalışan şirket içi panellerde role tabanlı yetkilendirme (RBAC), SQL injection koruması ve veri şifreleme yöntemleri.
Yazıyı Oku ➔FID yerini alan yeni INP metriğinde yeşil bölgeye geçme, Javascript thread tıkanıklıklarını çözme ve milisaniyelik yanıt verme teknikleri.
Yazıyı Oku ➔Güvenli, token doğrulamalı (Laravel Sanctum) ve hızlı yanıt veren mikroservis API altyapıları inşa etmenin püf noktaları.
Yazıyı Oku ➔Markanız için lüks web tasarımı, özel UI/UX mimarisi veya kurumsal kimlik projesi başlatın.
Proje Başlatın ➔