Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel’de via() fonksiyonunu yeniden yazmadan kullanıcı bazlı bildirim tercihleri
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel’de via() fonksiyonunu yeniden yazmadan kullanıcı bazlı bildirim tercihleri

Yazılım

Laravel’de via() fonksiyonunu yeniden yazmadan kullanıcı bazlı bildirim tercihleri

teknomers
Son güncelleme: 29 Mayıs 2026 21:58
teknomers
Paylaş
Paylaş

Tüm SaaS projeleri sonuçta benzer bir şeye dönüşür: Kullanıcıların e-posta, push bildirimleri, Slack gibi bildirim ayarlarını kategori bazında seçebildiği bir ekran. Bu mantık daima uygulama genelinde via() dizileri ve politika sınıfları içerisinde dağılır.

Bu durumu ayrı bir pakete aktardım: Laravel Notify Matrix.



Sorun

// Öncesi — her Laravel uygulamasının sonunda yaptığı şey:
public function via($notifiable): array
{
    $channels = ['database'];

    if ($notifiable->wantsMail('orders')) {
        $channels[] = 'mail';
    }

    if ($notifiable->wantsSlack('orders') && config('app.slack_enabled')) {
        $channels[] = 'slack';
    }

    return $channels;
}
Full ekran moduna geç

Full ekran modundan çık



Paket

// Kullanıcı modeli
use Scabarcas\LaravelNotifyMatrix\Concerns\HasNotificationPreferences;

class User extends Authenticatable
{
    use HasNotificationPreferences;
}

// Bildirim sınıfı
use Scabarcas\LaravelNotifyMatrix\Attributes\NotificationGroup;

#[NotificationGroup('orders')]
class OrderShipped extends Notification
{
    public function via($notifiable): array
    {
        return ['mail', 'database'];
    }
}

// Herhangi bir yerden
$user->wants('orders', 'mail');
$user->disable('orders', 'mail');
$user->enable('orders', 'database');
$user->getPreferencesForGroup('orders');
$user->clearPreferences('orders');
Full ekran moduna geç

Full ekran modundan çık

via() metodu aynı kalır — deklaratif, sade, koşulsuz.



Altta Nasıl Çalışır

Illuminate\Notifications\Events\NotificationSending üzerine bir dinleyici, kullanıcının opt-out (katılmama) ettiği kanallar için false döner. Zorunlu kanallar ise kullanıcı tercihlerini bypass eder. #[NotificationGroup] niteliği veya class_map girdisi olmayan bildirimler tamamen göz ardı edilir.

Çözümleme sırası:

  1. Kanala groups..forced bağlıysa → iletilir.
  2. Kullanıcıda saklı bir tercih hali varsa → onu kullan.
  3. Aksi takdirde, grup default_policy karar verir (global varsayılan ile geri dönüş sağlar).



Mimari Notlar

  • PreferenceManager çözümlemenin yönetimini üstlenir.
  • PreferenceRepository ve GroupResolver arayüzlerdir — Redis, olay tabanlı çözümleyiciler veya başka bir şeyle değiştirebilirsiniz.
  • Trait, yöneticinin ince bir yüzüdür.
  • Testler, SQLite bellek içi üzerinde Pest + Orchestra Testbench ile çalıştırılır.



Bağlantılar

Geri bildirimlerinizi bekliyorum.

Kaynak: Orijinal Makale

Contents
  • Sorun
  • Paket
  • Altta Nasıl Çalışır
  • Mimari Notlar
  • Bağlantılar
Laravel Gözlemcilerinden Neden Ayrıldım?
Laravel REST API Projelerini Nasıl Yapılandırıyorum
Laravel ile Sıfır Veritabanı Kullanarak Markdown Tabanlı Bir CMS Nasıl Kurdum
Laravel İçin Basit Bir Görünüm Sayacı Paketi
Monolitlerden Neden Vazgeçmelisiniz: Next.js + Laravel Yığını ⚡
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Microsoft Fable’ı Bir Daha Erteledi: GTA VI’nın Gölgesinde mi?
Sonraki Makale AI Terimleri Hakkında Bildiklerinizi Gözden Geçirelim

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Browsershot Alternatifleri: Laravel’de Puppeteer Olmadan HTML’den Görüntüye Dönüşüm
Yazılım
El Niño Okyanus Balıkçılığını Nasıl Altüst Ediyor?
Genel
Acil: ‘Ghostcommit’ ile Görsellerdeki Gizli Tehditler Açığa Çıkıyor
Siber Güvenlik
Yeni Dönüşümler Dragon Ball Xenoverse 3’te Sınırlı Görünüyor, Ama Daha Fazlası Var
Oyun
Kritik Zimbra Açığı: Özel E-postalarla Kötü Amaçlı Kod Çalıştırma Tehlikesi
Siber Güvenlik
Portatif Duş ile Temizlikten Korkmuyor Musunuz?
Liste
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?