mavinoo/laravel-batch, Laravel uygulamalarında toplu (batch) insert ve update işlemlerini tek bir sorgu ile gerçekleştirmenizi sağlayan bir PHP paketidir. Bu paket, özellikle büyük veri kümeleriyle çalışırken veritabanı sorgu sayısını azaltarak performansı artırmayı hedefler. Standart Eloquent yöntemlerine kıyasla daha az sorgu çalıştırarak zaman ve kaynak tasarrufu sağlar. Paket, Packagist üzerinde 4 milyondan fazla indirilme sayısına ulaşmış olup, Laravel topluluğunda yaygın olarak kullanılmaktadır.
Hangi ihtiyaçlarda değerlendirilebilir?
- Toplu veri ekleme veya güncelleme ihtiyacı olan Laravel projeleri
- Veritabanı sorgu sayısını azaltarak performansı artırmak isteyen geliştiriciler
- Büyük ölçekli veri işleme senaryoları (örn. veri aktarımı, toplu güncelleme)
Yaygın kullanım alanları
Toplu Veri Aktarımı
CSV veya API'den gelen binlerce kaydı veritabanına hızlıca eklemek için kullanılabilir. Tek tek insert yerine toplu insert ile sorgu sayısı azaltılır.
Toplu Güncelleme
Belirli bir kritere göre birçok kaydın aynı anda güncellenmesi gereken durumlarda, her kayıt için ayrı update sorgusu çalıştırmak yerine tek bir toplu update ile işlem tamamlanır.
Veri Senkronizasyonu
Harici bir sistemden gelen verilerle mevcut verileri senkronize etmek için toplu insert ve update işlemleri bir arada kullanılabilir.
İncelenmesi gereken noktalar
- Paketin sağladığı toplu işlemler, Eloquent'in otomatik tarih alanları (created_at, updated_at) gibi özelliklerini atlayabilir; bu durumda manuel olarak yönetilmesi gerekebilir.
- Toplu update işlemleri, her kayıt için farklı değerler içerebilir; bu durumda paketin sağladığı yöntemlerin doğru kullanılması önemlidir.
- Paketin güncel sürümü ve Laravel sürümüyle uyumluluğu kontrol edilmelidir; eski sürümlerde uyumsuzluklar olabilir.
WordPress.org
Kurulum ve geliştirme notları
Paket, Composer ile kolayca kurulabilir. Kurulum sonrası Laravel uygulamasında kullanıma hazırdır.
- 1Composer kullanarak paketi projeye ekleyin: composer require mavinoo/laravel-batch
- 2Paketin servis sağlayıcısını config/app.php dosyasına kaydedin (Laravel 5.5 ve sonrası için otomatik keşif geçerlidir).
- 3Paketin dokümantasyonunda belirtilen şekilde kullanmaya başlayın.
Paket, toplu insert ve update işlemleri için basit bir API sunar. Geliştirme sırasında paketin sağladığı metodların doğru kullanımı önemlidir.
- Batch::insert() metodu ile çoklu kayıt ekleme yapılabilir.
- Batch::update() metodu ile her kayıt için farklı değerler içeren toplu güncelleme yapılabilir.
- Paket, sorgu sayısını azaltarak performansı artırır.
Hazır çözümün ötesinde
Özel geliştirme ne zaman değerlendirilebilir?
ZeplinGo olarak, Laravel projelerinizde toplu veri işleme ihtiyaçlarınızı analiz ediyor, mevcut paketlerin uygunluğunu değerlendiriyor ve gerektiğinde özel çözümler geliştiriyoruz. Projenizin ölçeğine ve gereksinimlerine en uygun yaklaşımı birlikte belirleyebiliriz.
Ücretsiz ön çalışma isteyin →Değerlendirme soruları
mavinoo/laravel-batch paketi hangi Laravel sürümleriyle uyumludur?
Paketin Packagist sayfasında belirtilen sürüm kısıtlarına göre uyumluluk değişebilir. Güncel sürümün Laravel 5.5 ve sonrası ile uyumlu olduğu bilinmektedir, ancak projenizde kullanmadan önce composer.json dosyasındaki gereksinimleri kontrol etmeniz önerilir.
Bu paket Eloquent'in otomatik tarih alanlarını (timestamps) destekler mi?
Paket, toplu insert ve update işlemlerinde Eloquent modellerinin otomatik tarih alanlarını otomatik olarak doldurmaz. Bu alanları kullanmanız gerekiyorsa, verileri hazırlarken manuel olarak eklemeniz gerekebilir.
Toplu update işlemlerinde her kayıt için farklı değerler kullanabilir miyim?
Evet, paketin update metodu, her kayıt için farklı değerler içeren bir dizi kabul eder. Bu sayede tek bir sorgu ile birden fazla kaydı farklı değerlerle güncelleyebilirsiniz.