iToverDose/Yazılım· 1 HAZIRAN 2026 · 12:00

Laravel Google Sheets v1.1.0 ile veri senkronizasyonunu basitleştirin

Laravel projelerinizde Google Sheets ile veri senkronizasyonunu kolaylaştıran yeni özellikleri tanıyın. Fark önizleme, çift yönlü senkron ve hata yönetimiyle iş akışlarınızı hızlandırın.

DEV Community3 dk okuma0 Yorumlar

İş süreçlerinde Google Sheets’in sunduğu esneklik, birçok uygulamanın temelini oluşturuyor. Kullanıcı yönetimi, veri dışa aktarma ve hatta otomatik senkronizasyon gereksinimleri için bu platforma güvenen geliştiriciler, artık Laravel tabanlı projelerinde daha verimli çalışabilirler.

olamilekan/laravel-google-sheets paketinin v1.1.0 sürümü, gerçek dünya uygulamalarında karşılaşılan yaygın zorluklara yönelik yeni özellikler sunuyor. Bu güncellemeyle birlikte, veri senkronizasyonu daha güvenilir, yönetilebilir ve hata toleranslı hale geliyor. Geriye dönük uyumlu olan bu sürüm, 17 commit değişikliği içeriyor ve Laravel’in farklı sürümlerinde sorunsuz çalışma imkanı sağlıyor.

Laravel 13 ve Önceki Sürümlerde Destek

Yeni paket, Laravel’in 10, 11, 12 ve 13 sürümlerinde çalışabiliyor. Bu özellik, geliştiricilerin farklı projelerde aynı paketi kullanmasına olanak tanırken, yükseltme sürecini de basitleştiriyor. Eski ve yeni Laravel uygulamalarında tutarlılık sağlamak artık daha kolay.

Veri Senkronizasyonunda Yeni Yaklaşımlar

Veri senkronizasyonunda en büyük zorluklardan biri, değişiklikleri takip etmek ve olası çakışmaları yönetmektir. v1.1.0, bu süreci kolaylaştıran beş farklı senkronizasyon yöntemi sunuyor:

  • Model tabanlı senkronizasyon: Veritabanı kayıtlarını doğrudan Google Sheets’e aktarmak için.
  • CSV işlemleri: Dışa aktarma ve içe aktarma işlemleri için.
  • API entegrasyonu: Uzak API’lerden veri çekme ve gönderme için.
  • İki yönlü senkronizasyon: Veri değişikliklerinin her iki yönde de senkronize edilmesi için.
  • Kuru çalıştırma (dry run): Gerçek senkronizasyon yapılmadan önce değişiklikleri önizlemek için.

Kuru Çalıştırma ile Önizleme

Örneğin, kullanıcı verilerini senkronize etmek istiyorsunuz. Yeni özellik sayesinde, değişiklikleri gerçekleştirmeden önce bir önizleme yapabilirsiniz:

use App\Models\User;
use Olamilekan\GoogleSheets\Facades\GoogleSheets;

$preview = GoogleSheets::connection('users')
    ->diffAgainst(User::query(), key: 'email')
    ->rules([
        'name' => ['required', 'string'],
        'email' => ['required', 'email'],
    ])
    ->preview();

$preview->counts();

Bu komut, yeni, değiştirilen, silinen, geçersiz ve çakışan satırları ayrı ayrı gösterir. Örneğin:

[
    'new' => 1,
    'changed' => 2,
    'deleted' => 0,
    'invalid' => 1,
    'conflicts' => 0,
]

Ayrıca, hangi alanların karşılaştırılacağını da belirleyebilirsiniz:

$preview = GoogleSheets::connection('users')
    ->diffAgainst(User::query(), key: 'email')
    ->only(['name', 'role'])
    ->except(['updated_at'])
    ->preview();

Bu özellik, özellikle yönetici panellerinde veya onay akışlarında kullanışlıdır.

Çift Yönlü Senkron ve Çatışma Yönetimi

Veri senkronizasyonunda en karmaşık durumlardan biri, aynı anda hem uygulama hem de spreadsheet üzerinde yapılan değişiklikleri yönetmektir. v1.1.0, bu süreci kolaylaştırmak için dört farklı çatışma çözme stratejisi sunuyor:

  • app_wins (uygulama kazansın)
  • sheet_wins (spreadsheet kazansın)
  • skip (atla)
  • fail (hata ver)

Örneğin, kullanıcı rollerini senkronize ederken çatışmaları engellemek için:

$report = GoogleSheets::connection('users')
    ->syncTwoWay(User::class, keyColumn: 'email', options: [
        'conflict' => 'sheet_wins',
    ]);

Her senkronizasyon işlemi, detaylı bir rapor döndürür:

$report->counts();      // Toplam işlem sayısı
$report->created();     // Yeni eklenen kayıtlar
$report->updated();     // Güncellenen kayıtlar
$report->conflicts();   // Çakışan kayıtlar
$report->errors();      // Hatalı kayıtlar

Hata Yönetiminde Yenilikler

Doğrulama hatalarını yönetmek, veri senkronizasyonunda sık karşılaşılan bir başka zorluktur. Yeni sürüm, hata raporlarını doğrudan bir hata sayfasına yazabilme özelliği sunuyor. Böylece, kullanıcılar hatalı satırları daha kolay tespit edebiliyor ve düzeltilebiliyor.

$validRows = GoogleSheets::connection('users')->validateWithErrorSheet([
    'name' => ['required', 'string'],
    'email' => ['required', 'email'],
]);

Kuyruğa Alma ve Geri Dönüş Mekanizmaları

Uzun süren senkronizasyon işlemleri, uygulama performansını olumsuz etkileyebilir. v1.1.0, bu işlemleri arka planda çalıştırmak için kuyruğa alma özelliği sunuyor:

GoogleSheets::connection('users')
    ->queueSync('syncFromModel', [User::class, 'email'], queue: 'imports');

Ayrıca, geçici API hatalarında otomatik yeniden deneme ve üstel geri çekilme (exponential backoff) desteği de bulunuyor. Bu özellik, Google Sheets API’sinin geçici hata durumlarında (örneğin, kota aşımı) uygulamanın dayanıklılığını artırıyor.

// `config/google-sheets.php`

'retry' => [ 'enabled' => true, 'attempts' => 3, 'delay' => 250, 'max_delay' => 5000, ],

Çalışma zamanında da bu ayarları değiştirebilirsiniz:

$rows = GoogleSheets::withRetries(attempts: 5, delay: 500)->all();
$rows = GoogleSheets::withoutRetries()->all();

Test ve Geliştirme Kolaylıkları

Yeni sürüm, geliştiricilerin paketi test ederken gerçek API’lere bağlı kalmadan çalışmasına olanak tanıyan sahte (fake) modüller sunuyor. Bu sayede, uygulamanızın davranışını doğrularken API kotası sorunlarıyla karşılaşmazsınız.

use Olamilekan\GoogleSheets\Facades\GoogleSheets;

$fake = GoogleSheets::fake([
    'users' => [
        ['name' => 'Alice', 'email' => 'alice@example.com'],
    ],
]);

GoogleSheets::connection('users')->appendAssoc([
    ['name' => 'Bob', 'email' => 'bob@example.com'],
]);

$fake->assertAppended('users', [
    'name' => 'Bob',
    'email' => 'bob@example.com',
]);

Geleceğe Yönelik Bakış

Google Sheets ile veri senkronizasyonu, özellikle iş akışlarının dijitalleştiği günümüzde geliştiriciler için vazgeçilmez bir araç haline geldi. v1.1.0 sürümüyle birlikte, Laravel projelerinde bu entegrasyon daha güvenilir, yönetilebilir ve esnek hale geliyor. Gelecekteki güncellemelerin, özellikle yapay zeka destekli veri analizi ve otomatikleştirilmiş senkronizasyon gibi alanlarda daha da yenilikçi çözümler sunması bekleniyor.

Yapay zeka özeti

Laravel projelerinizde Google Sheets kullanımını geliştirin. Yeni v1.1.0 sürümüyle veri senkronizasyonu, hata yönetimi ve test kolaylıkları hakkında detaylı bilgiler.

Yorumlar

00
YORUM BIRAK
ID #A96VZL

0 / 1200 KARAKTER

İnsan doğrulaması

6 + 7 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.