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
Hotwire Native ve NativePHP: Web Framework’lerinin Mobil ve Masaüstü Üzerindeki Etkisi
2026 Yılı İçin Hindistan’daki En İyi Laravel Geliştirme Şirketleri
PHP ile Tam Özellikli Kripto Ticareti: zoomex-php Kütüphanesine Derinlemesine Bakış
Bagisto’da Kritik Güvenlik Sorunu: Sessiz Yönetici Hesabı Değiştirme ve Silme – Bagisto Arka Kapı
Özelleştirilebilir CRM vs SaaS CRM: 2026 Yılında Laravel Tabanlı Çözümlerin Öncülüğü
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

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
Yeni AI odaklı arama motoru: In the Weights ile tanışın
Yapay Zeka
//

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?