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
Halka Açık Bir SaaS Motoru Geliştirmek: İzleyicileri Dışlamadan Bir Kiracıyı Askıya Alma
Bellek Çökmesi Yaşamadan Milyonları İşleme: Laravel Lazy Collections
Çoklu Ajan Yapay Zekayı Laravel Uygulamamdaki Üretim Hatalarını Hata Ayıklamak İçin Nasıl Kullanıyorum
Laravel’de Redis ile Çoklu Koruma İzni Sorunlarını Nasıl Çözdüm
Dijital Dönüşüm: Laravel ile Kediri Belediyesi BPPKAD için NPWPD Sistemi Geliştirme Deneyimi
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

Claude API PHP ve Laravel Eğitimi: Tam Entegrasyon Rehberi
Yazılım
Araştırmacı, akıllı ampulü yasaklı kitap kütüphanesine dönüştürdü
Donanım
Self-hizmet Güvenlik Denetimi ve Sistem Sağlığı Araç Seti Oluşturdum: Filament PHP v3 için
Yazılım
En İyi 3D Tarayıcılar 2026 — Test Ettiğimiz En Başarılı Modeller
Donanım
Signal’ın Meredith Whittaker: AI sohbet botları dostunuz değil
Yapay Zeka
Nadir ASML Özel Monopoly oyunu sosyal medyada ticarete sunuldu – meraklı 2007 çalışan hediyesini High-NA EUV Lego setiyle değiştirdi
Donanım
//

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?