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: Yüksek Hacimli Laravel Uygulamaları için Redis Tabanlı İzinler: v4.0.0-beta.1
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 » Yüksek Hacimli Laravel Uygulamaları için Redis Tabanlı İzinler: v4.0.0-beta.1

Yazılım

Yüksek Hacimli Laravel Uygulamaları için Redis Tabanlı İzinler: v4.0.0-beta.1

teknomers
Son güncelleme: 23 Nisan 2026 21:05
teknomers
Paylaş
Paylaş

Yenilikçi bir yaklaşım olarak v4.0.0-beta.1 sürümünü yayımladım ve burada, bu sürümde yer alan yeniliklerin yanı sıra, çözmeyi amaçladığı spesifik problemi paylaşmak istiyorum.


Problem

Spatie’nin laravel-permission paketi, Laravel ekosisteminde standart bir izin yönetim paketi olarak tanınıyor. Ancak, bu paket genellikle kullanıcıların rolleri ve bu rollerin izinleri olduğu basit bir model için tasarlanmıştır. Bu modelde, her istek başına birkaç kez kontrol yapılır, veritabanına ulaşılır, herkes memnun kalır.

Bu modeli ölçeklendirdiğinizde ne olur?

  • 200+ ACL-korunan widget’ı render eden bir yönetim paneli
  • 30 mikroservisi yöneten bir API gateway’i, her bir kontrol için yetkilendirme bağlamı gerektirir
  • Kullanıcı filtreli verileri raporlayan bir gösterge paneli, her alanda izin kontrolleri yapar

Bu noktada, her izin kontrolü için bir veritabanı erişimi gerekebilir ve p99 gecikmesi, yetkilendirme tarafından belirlenmiş olur.


Bu paket ne yapar?

Tüm okuma yolunu Redis’e taşır.

  • Roller ve izinler Redis SET’leri içinde denormalize edilir: user:{id}:permissions, user:{id}:roles
  • İzin kontrolleri artık SISMEMBER ile yapılır — ~0.1ms, veritabanı gidiş dönüşü 5-20ms karşısında
  • Yazmalar (atanma/kaldırma) veritabanını günceller, olayları tetikler ve Redis önbelleğini yeniden ısıtır
  • Önbellek geçersiz kılma, olay odaklı ve otomatikdir

Trade-off: Redis bağımlılığı, kullanıcı girişi sırasında önbelleği ısıtma yükü, biraz daha karmaşık yazma yolu.


v4.0.0-beta.1’de neler yeni?


İzin grubu meta verisi

Daha önce PermissionDTO::group her zaman null olarak kalmıştı, çünkü Redis grup verisi depolamıyordu. Artık bir Redis hash’i (permission_groups) mevcut ve {guard}|{name} → group haritalaması yapıyor. getAllPermissions() düzgün bir şekilde zenginleştirilmiş DTO’lar döndürüyor.


Rol seviyesinde izin kontrolleri

Role::hasPermission('posts.create') — rolün izin seti üzerinde doğrudan SISMEMBER. Kullanıcı yüklemeden “admin rolü X’e sahip mi?” sorusunu cevaplamak için yararlıdır.


Kuyruk destekli önbellek ısıtma

Isıtma komutları artık --queue:

php artisan permissions-redis:warm --queue=default
php artisan permissions-redis:warm-user 42 --queue=default

Senkron çalıştırmak yerine WarmAllCacheJob / WarmUserCacheJob tetikler. Milyonlarca kullanıcıyı ısıtmak için kullanışlıdır.


Çoklu kullanıcı modelleri

Konfigürasyonda user_model‘i bir dizi olarak ayarlayın:

'user_model' => [App\Models\User::class, App\Models\Admin::class],

Her iki model de ısıtılır ve her ikisi de Gate::before süper yöneticisi ile korunur.


Blade direktifi koruma geçersiz kılma

@role('admin', 'api')
    ...
@endrole

İkinci argüman, koruma adı. Altı direktif (@role, @hasanyrole, @hasallroles, @permission, @hasanypermission, @hasallpermissions) bunu kabul eder.


UUID/ULID rol kimlikleri

Eğer Rol modeliniz tarihsel olmayan birincil anahtarlar kullanıyorsa, v4 bunu ele alır. PermissionRepositoryInterface artık rol kimliklerini int|string olarak türler.


Savunmacı eklemeler

  • Hafıza içinde çözücü önbelleğinde LRU (Least Recently Used) temizliği — uzun süreli işlemler (kuyruk işçileri, Octane) için bellek büyümesini engeller. Varsayılan limit: 1000 kullanıcı.
  • Isıtma bekleme süresi — Eğer Redis önbellek oluşturma sürekli olarak başarısız olursa, çözücü veritabanına ısıtma girişimleri yapmayı durdurur (varsayılan: 1 saniye cooldown her kullanıcı için).
  • TransactionFailedException — Redis EXEC null/false döndüğünde, gözlemlenebilir hatalar fırlatır, yazmalar sessizce kaybolmaz.


Önemli değişiklik

PermissionRepositoryInterface, izin grubu meta verisi için üç yeni yöntem ekledi:

public function setPermissionGroups(array $groups): void;
public function getPermissionGroups(array $encodedNames): array;
public function deletePermissionGroup(string $encodedName): void;

Arayüzün özel bir uygulamasını (tenant-aware veya başka) kullanıyorsanız, bunları uygulamak zorundasınız. Eğer yalnızca yerleşik RedisPermissionRepository‘yi kullanıyorsanız, kod değişikliği yok — yeni hash’i doldurmak için yükseltme sonrası php artisan permissions-redis:warm --fresh komutunu çalıştırmanız yeterlidir.


Betayı kur

composer require scabarcas/laravel-permissions-redis:^4.0@beta
php artisan vendor:publish --tag=permissions-redis-migrations
php artisan migrate
php artisan permissions-redis:warm --fresh


Beklentilerim

1-2 hafta boyunca beta süreci sonrasında rc.1 olarak kesmeyi planlıyorum. Aşağıdaki konularda geri bildirim bekliyorum:

  • Yeni yöntemlerin API ergonomisi
  • Yükseltme kılavuzunun netliği
  • Özel yapınızda (tenancy, özel korumalar, UUID kullanıcılar) herhangi bir şeyin bozulup bozulmadığı

Sürüm notları · GitHub · Packagist

Denediğinizde bana nasıl gittiğini bildiriniz.

Kaynak: Orijinal Makale

Contents
  • Problem
  • Bu paket ne yapar?
  • v4.0.0-beta.1’de neler yeni?
    • İzin grubu meta verisi
    • Rol seviyesinde izin kontrolleri
    • Kuyruk destekli önbellek ısıtma
    • Çoklu kullanıcı modelleri
    • Blade direktifi koruma geçersiz kılma
    • UUID/ULID rol kimlikleri
    • Savunmacı eklemeler
  • Önemli değişiklik
  • Betayı kur
  • Beklentilerim
Fikirden Endekslene: Laravel ve React ile 60 Günde SaaS Nasıl Başlattım
WhatsApp, uygulamanın kendisinde iş aramalarını ikiye katlıyor
Parolaları Saklamayı Durdur: Laravel ile Kurumsal SSO Oluşturun 🛡️
Laravel Cloud’a Gelenler: Aylık 5$ Plan, Harcama Limitleri ve Anında Sıfıra Ölçeklenme
N+1 Sorunlarını ve Yavaş Sorguları Laravel Üretim Performansınızı Düşürmeden Durdurun
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Salmon, Filipinler’deki Yetersiz Bankacılığa Dijital Kredi Getiriyor
Sonraki Makale Laboratuvar Ortamında İnsan Sperm Üretimi: Geleceğin Üremesi mi?

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Acil: Yapay Zeka Destekli Windows Terminal ile Tanışın!
Siber Güvenlik
Elegoo Jupiter 2 Reçineli 3D Yazıcı İncelemesi: Dev Geri Döndü
Donanım
Yeni Spyro Oyunu: A Realm Beyond ile Efsane Yeniden Canlanıyor
Oyun
NASA Ay’a Yüksek Teknoloji Prada Termal Giysileriyle Gidecek
Liste
Çin, Saishiteng Dağı’nı Dünyanın En Büyük Astronomi Üssü Yapıyor!
Bilim
2026 Dünya Kupası İskoçya, Finallerde Fark Yaratmaya Hazır mı?
Spor
//

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?