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 İstatistikleri ile Daha Temiz Bir Laravel Dashboard İstatistikleri Oluşturma
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 İstatistikleri ile Daha Temiz Bir Laravel Dashboard İstatistikleri Oluşturma

Yazılım

Laravel İstatistikleri ile Daha Temiz Bir Laravel Dashboard İstatistikleri Oluşturma

teknomers
Son güncelleme: 21 Haziran 2026 22:18
teknomers
Paylaş
Paylaş

Birçok Laravel uygulamasında, dashboard istatistikleri genellikle toplam kullanıcı sayısı, toplam sipariş sayısı, gelir, ortalama sipariş değeri, grafik verileri, yüzdelik değişim gibi temel göstergelerle başlar. Başlangıçta bu mantık iyi görünebilir çünkü her istatistik “sadece bir sorgu” gibi görünür. Ancak uygulama büyüdükçe, aynı mantık kontrolcü, hizmetler, widget’lar, raporlar ve API uç noktalarında görünmeye başlar.

Bu, kod tabanınıza yayılmaya başlayacak rahatsız edici ancak küçük bir sorun. Neden? Çünkü dashboard veri filtrelerine, grafik verilerine, yüzde değişimlerine, önbelleğe alınmış sayılara ve benzeri verilere ihtiyaç duyulacaktır ki bu verilere farklı yerlerde yeniden ulaşmak zorunda kalabilirsiniz.

Bu tür bir durumu çözmek için Laravel Statistician paketini geliştirdim.

Laravel Statistician, Eloquent modellerden, sorgu oluşturuculardan, model sınıflarından veya basit tablo adlarından temiz uygulama istatistikleri oluşturmak için bir Laravel paketidir. Hedef basittir: Dashboard ve raporlama mantığını tekrar kullanılabilir hale getirmek, sorgu mantığını her yere kopyalamaktan kaçınmaktır.

Repository:

https://github.com/omaressaouaf/laravel-statistician


Problem

Birçok Laravel uygulamasında, dashboard istatistikleri aşağıdaki gibi başlar:

$totalUsers = User::count();
$totalOrders = Order::count();
$totalRevenue = Order::sum('total');
$averageOrderValue = Order::avg('total');

Başlangıçta bu tamamen iş görebilir. Ancak sorun, dashboard tarih filtrelerine, grafik verilerine, yüzdelik değişimlere, önbelleğe alınmış verilere ve benzeri verilere ihtiyaç duyduğunda başlar. O noktada, sorun artık sorguların karmaşık olmaması değil, bu sorguların çoğaltılabilir olmasıdır.

Bir kontrolcü mantığı vardır. Bir admin widget’ında başka bir kısım vardır. Rapor dışarı aktarmada bir başka versiyon vardır. API uç noktasında başka bir versiyon vardır. Zamanla, bu küçük kopyalanmış sorgular, kod tabanında tutarsızlıklara yol açar.


Laravel Statistician Neler Yapıyor?

Laravel Statistician, uygulama istatistiklerini tanımlamak ve oluşturmak için daha temiz bir yol sunuyor. Paket, genel dashboard ihtiyaçlarını destekler: toplu istatistikler, tarih aralığı filtreleme, grafikler için tarih gruplu istatistikler, dönemler arasındaki yüzdelik değişiklikler, trend istatistikleri, çoklu istatistikleri bir çağrıda alma, önbellekleme ve özel anahtarlar gibi pek çok özellik sunmaktadır.

Paket, tam kapsamlı bir analiz platformu veya BI aracı olmayı hedeflemiyor. Daha çok, çoğu Laravel uygulamasının ihtiyaç duyduğu istatistikler için küçük bir pakettir; dashboard’lar, yönetim panelleri, raporlar ve dahili araçlar için idealdir.


Kurulum

Paketi Composer ile kurabilirsiniz:

composer require omaressaouaf/laravel-statistician


Temel Toplu İstatistik

İşte kullanıcıları saymak için temel bir örnek:

use App\Models\User;
use Omaressaouaf\LaravelStatistician\Enums\Aggregate;
use Omaressaouaf\LaravelStatistician\Sources\AggregateSource;
use Omaressaouaf\LaravelStatistician\Statisticians\AggregateStatistician;

$stats = AggregateStatistician::fromSources(
    new AggregateSource(User::class, Aggregate::COUNT)
)->get();

echo $stats['users_count'];

Sorguyu, doğrudan bir kontrolcü veya dashboard widget’ı içerisinde yazmak yerine, istatistiği yapılandırılmış bir kaynak haline getirir. Bu, yeniden kullanılmasını, genişletilmesini ve diğer istatistiklerle birleştirilmesini kolaylaştırır.


Özel Anahtarlar

Paket, kaynak ve toplula dayalı olarak bir anahtar üretir. Ancak kendi anahtarınızı tanımlamanız da mümkündür:

$stats = AggregateStatistician::fromSources(
    (new AggregateSource(User::class, Aggregate::COUNT))->keyBy('total_users')
)->get();

echo $stats['total_users'];

Bu, dashboard’nuzun yanıtının temiz ve öngörülebilir isimlere sahip olmasını destekler.


Tarih Aralığı Filtreleme

Çoğu dashboard istatistiği global değildir. Genelde, bugünün, bu haftanın, bu ayın, bu yılın veya özel bir tarih aralığının sayılarının bulunmasını istersiniz.

Laravel Statistician, bir başlangıç ve bitiş tarihi uygulamanıza olanak tanır:

$stats = AggregateStatistician::fromSources(
    new AggregateSource(User::class, Aggregate::COUNT)
)
    ->start('2025-01-01')
    ->end('2025-12-31')
    ->get();

Bu, tarih filtrelemenin tutarlı olmasını sağlar.


Bir Çağrıda Birden Fazla İstatistik

Yaygın bir dashboard modeli, kullanıcılar, siparişler ve gelir gibi birden fazla sayının birlikte döndürülmesidir.

use App\Models\User;
use App\Models\Order;
use Omaressaouaf\LaravelStatistician\Enums\Aggregate;
use Omaressaouaf\LaravelStatistician\Sources\AggregateSource;
use Omaressaouaf\LaravelStatistician\Statisticians\AggregateStatistician;

$stats = AggregateStatistician::fromSources(
    (new AggregateSource(User::class, Aggregate::COUNT))->keyBy('users'),
    (new AggregateSource(Order::class, Aggregate::COUNT))->keyBy('orders'),
    (new AggregateSource(Order::class, Aggregate::SUM, 'total'))->keyBy('revenue'),
)->get();

return $stats;

Bu, ilgili dashboard metriklerini gruplandırarak birden fazla yöntem veya hizmet arasında dağılma yerine bir arada tutar.


Toplam, Ortalama, Minimum ve Maksimum

Yalnızca sayımlarla sınırlı değilsiniz. Örneğin, sipariş istatistiklerini şu şekilde hesaplayabilirsiniz:

use App\Models\Order;
use Omaressaouaf\LaravelStatistician\Enums\Aggregate;
use Omaressaouaf\LaravelStatistician\Sources\AggregateSource;
use Omaressaouaf\LaravelStatistician\Statisticians\AggregateStatistician;

$stats = AggregateStatistician::fromSources(
    new AggregateSource(Order::class, Aggregate::SUM, 'total'),
    new AggregateSource(Order::class, Aggregate::AVG, 'total'),
    new AggregateSource(Order::class, Aggregate::MAX, 'total'),
)->get();

Bu, e-ticaret dashboard’ları, SaaS yönetim panelleri, finansal raporlar ve dahili iş araçları için faydalıdır.


Tarihlere Göre Gruplandırılan İstatistikler

Dashboard grafiklerinin genellikle, kullanıcıların günlük kaydı, siparişlerin günlük kaydı, aylık gelir gibi tarih bazlı veri gruplarına ihtiyacı vardır.

Laravel Statistician, tarih grubuna göre istatistikleri içerir:

use App\Models\User;
use Omaressaouaf\LaravelStatistician\Enums\Aggregate;
use Omaressaouaf\LaravelStatistician\Sources\DateGroupedAggregateSource;
use Omaressaouaf\LaravelStatistician\Statisticians\DateGroupedAggregateStatistician;

$stats = DateGroupedAggregateStatistician::fromSources(
    new DateGroupedAggregateSource(User::class, Aggregate::COUNT)
)
    ->start('2025-01-01')
    ->end('2025-01-31')
    ->get();

Örnek sonuç:

[ 
    'users_count_by_date' => [ 
        'data' => [ 
            ['date_label' => '2025-01-01', 'aggregate' => 10], 
            ['date_label' => '2025-01-02', 'aggregate' => 15], 
        ], 
        'date_format' => 'Y-m-d', 
    ], 
]

Bu, grafik bileşenleri inşa ederken yararlıdır çünkü veri her seferinde el ile hazırlandığı yerine tutarlı bir formatta üretilebilir.


Yüzdelik Değişim

Dashboard’lar genellikle daha bağlamlı hale getirildiğinde daha yararlı hale gelir. “1.200 kullanıcı” önemlidir, ancak “1.200 kullanıcı, önceki döneme göre %18 artış” çok daha iyidir.

Laravel Statistician, dönemler arasındaki yüzdelik değişimi destekler:

use App\Models\User;
use Omaressaouaf\LaravelStatistician\Sources\PercentageChangeSource;
use Omaressaouaf\LaravelStatistician\Statisticians\PercentageChangeStatistician;

$stats = PercentageChangeStatistician::fromSources(
    new PercentageChangeSource(User::class)
)
    ->start('2025-02-01')
    ->end('2025-02-28')
    ->get();

echo $stats['users_percentage_change'];

Bu, mevcut performansı bir önceki dönemle karşılaştıran dashboard kartları oluştururken yardımcı olur.


Sorgu Oluşturucuları Kullanma

Bazı istatistikler tüm modellerle değil, belirli durumlarla ilgilidir. Yalnızca aktif kullanıcıları, tamamlanmış siparişleri veya ödenmiş faturaları saymak isteyebilirsiniz.

Paket, sorgu oluşturucuları ile de çalışır:

use Illuminate\Support\Facades\DB;
use Omaressaouaf\LaravelStatistician\Enums\Aggregate;
use Omaressaouaf\LaravelStatistician\Sources\AggregateSource;
use Omaressaouaf\LaravelStatistician\Statisticians\AggregateStatistician;

$stats = AggregateStatistician::fromSources(
    new AggregateSource(DB::table('users')->where('is_active', true), Aggregate::COUNT)
)->get();

Bu, istatistiklerin gerçek yaşam kullanım durumları için yeterince esnek olmaktadır.


İstatistikleri Önbellekleme

Bazı dashboard istatistikleri her istekte yeniden hesaplanması gerekmez. Laravel Statistician, önbellekleme desteği de sunar:

$stats = AggregateStatistician::fromSources(
    new AggregateSource(User::class)
)
    ->cacheFor(3600)
    ->get();

Ayrıca belirli bir tarihe kadar önbellekleme yapabilirsiniz:

$stats = AggregateStatistician::fromSources(
    new AggregateSource(User::class)
)
    ->cacheUntil(now()->addDay())
    ->get();

Ve önbelleği koşullu olarak temizleyebilirsiniz:

$stats = AggregateStatistician::fromSources(
    new AggregateSource(User::class)
)
    ->clearCacheWhen(request()->boolean('refresh'))
    ->cacheFor(3600)
    ->get();

Bu, kullanıcıların hızlı yanıt beklediği ancak verilerin her saniyede bir tazelenmesi gerekmeyen dashboard’lar için idealdir.


Neden Bunu Geliştirdim?

Ben küçük paketler oluşturmaktan hoşlanıyorum; sıkıcı problemleri temiz bir şekilde çözüyor. Dashboard istatistikleri genellikle bir Laravel uygulamasının en zor kısmı değildir, ancak kod tabanını karmaşık hale getirebilirler. Genelde durum şu şekilde görünür:

// Kontrolcü
$totalUsers = User::whereBetween('created_at', [$start, $end])->count();

// Başka bir yerde
$users = User::whereDate('created_at', '>=', $start)
    ->whereDate('created_at', 'count();

// Başka bir dashboard widget'ı
$userCount = User::query()
    ->whereBetween('created_at', [$from, $to])
    ->count();

Bunların hiçbiri yalnızca kötü değil. Ancak zamanla, tutarsızlıklara yol açar.

Laravel Statistician, bu kalıbın etrafında küçük bir soyutlamadır. Ağır bir analiz sistemi değildir. Karmaşık bir raporlama motoru değildir. Sadece, istatistikleri tanımlama, yeniden kullanma, önbelleğe alma ve döndürmenin daha temiz bir yoludur.


Tasarım Felsefesi

Paket, bir dizi basit ilkeye dayanır. Öncelikle, API, okunabilir olmalıdır. Bir geliştirici, birden fazla dosya arasında zıplamadan neyin hesaplandığını anlamalıdır. İkincisi, yaygın dashboard ihtiyaçlarını önce karşılamalıdır: toplamlar, tarih aralıkları, grafik verileri, karşılaştırma istatistikleri ve önbellekleme gibi. Üçüncüsü, mevcut Laravel kalıplarıyla çalışmalıdır. Paket, yeni bir veri katmanı dayatmak yerine, Eloquent modelleri, sorgu oluşturucuları, model sınıfları ve tablo adları ile çalışmayı destekler. Son olarak, genişletilebilir kalmalıdır; her uygulama sonunda özel iş metriklerine ihtiyaç duyar, bu yüzden paket, genel geliştirici deneyimini korurken özel istatistikçileri destekler.


Bu Paket Ne Zaman Faydalıdır?

Laravel Statistician; admin panelleri, SaaS dashboardları, e-ticaret raporları, dahili araçlar, CRM istatistikleri, finans özetleri, kullanıcı aktivite raporları, grafik API’leri ve KPI widget’ları için faydalıdır. Aynı zamanda uygulamanın birkaç kısmının benzer istatistiklere ihtiyaç duyduğu durumlarda özellikle kullanışlıdır.


Ne Zaman İhtiyacınız Olmayabilir?

Eğer dashboard’ınız yalnızca bir veya iki basit sayı içeriyorsa, istatistikleriniz son derece özelse, zaten bir analiz sistemi kullanıyorsanız veya verileriniz ayrı bir depoda veya BI aracında işleniyorsa bu pakete ihtiyacınız olmayabilir. Bu paket, Laravel uygulamaları içindeki uygulama düzeyinde istatistikler içindir. Tam kapsamlı bir analiz altyapısını değiştirmek için değildir.


Son Düşünceler

İstatistik mantığı, başlangıçta soyutlamak için çok küçük gibi görünen bir şeydir. Ancak dashboard büyüdükçe, çoğaltılmalar belirgin hale gelir. Laravel Statistician, Laravel uygulamalarının bu kısmını daha temiz hale getirme girişimimdir: istatistikleri bir kere tanımlamak, yeniden kullanmak, gruplamak, önbelleğe almak ve öngörülebilir bir formatta döndürmektir.

Paket açık kaynaklıdır ve Laravel geliştiricilerinden geribildirim almak isterim.

Repository:

https://github.com/omaressaouaf/laravel-statistician

Eğer Laravel’de dashboard’lar geliştiriyorsanız, umarım bu paket, istatistik sorgularını tekrar tekrar yazmaktan sizi kurtarır.

Kaynak: Orijinal Makale

Contents
  • Problem
  • Laravel Statistician Neler Yapıyor?
  • Kurulum
  • Temel Toplu İstatistik
  • Özel Anahtarlar
  • Tarih Aralığı Filtreleme
  • Bir Çağrıda Birden Fazla İstatistik
  • Toplam, Ortalama, Minimum ve Maksimum
  • Tarihlere Göre Gruplandırılan İstatistikler
  • Yüzdelik Değişim
  • Sorgu Oluşturucuları Kullanma
  • İstatistikleri Önbellekleme
  • Neden Bunu Geliştirdim?
  • Tasarım Felsefesi
  • Bu Paket Ne Zaman Faydalıdır?
  • Ne Zaman İhtiyacınız Olmayabilir?
  • Son Düşünceler
Milyonlarca insan Noel’i bu yıl yine Zoom üzerinden kutlayacak
PHP Stres Testi Aracı: PHP ve Laravel Uygulamalarını Nasıl Stres Testine Tutarız
PHP’nin Kendi Jupyter Notebook’u Olursa Ne Olur?
Filament v5’in Kayıt Sayfasını Nasıl Uzatılır?
2026’da Bağımsız Geliştiriciler İçin Clerk, Auth0 ve Supabase Auth: Hangisini Kullanmalısınız?
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Remedy’nin Yeni Yönü: Control Resonant ile Fark Yaratan Deneyim
Sonraki Makale Samsung 32 inç 1440p 165 Hz Oyun Monitörü Prime Günü’nde 189.99$’a düştü

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Eski Android telefonlarla Shahed insansız hava araçlarını tespit etme
Donanım
Laravel’de Site Haritası Oluşturma: Kapsamlı Bir Rehber
Yazılım
Razer Naga ile hastaları tedavi eden telehealth doktoru
Donanım
Bütçe dostu RK R65 oyuncu klavyesi 45 dolara düştü!
Donanım
Bose Medya Şirketi Olma Yolunda İlginç Bir Adım Attı
Liste
Samsung 32 inç 1440p 165 Hz Oyun Monitörü Prime Günü’nde 189.99$’a düştü
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?