Google Sheets ist für viele Unternehmen der Ausgangspunkt für Geschäftsprozesse. Ob Datenimport, Export, interne Dashboards oder benutzerverwaltete Tabellen – die Integration mit Laravel ermöglicht automatisierte Workflows und spart wertvolle Zeit.
Mit dem Update auf Version 1.1.0 des Pakets olamilekan/laravel-google-sheets werden solche Anwendungsfälle nun noch effizienter unterstützt. Das Release bringt eine Reihe von Neuerungen, die sowohl Entwickler als auch Endanwender direkt nutzen können. Dazu gehören verbesserte Sync-Methoden, eine Diff-Vorschau für Importe sowie robustere Fehlerbehandlungen. Insgesamt wurden 17 Commits seit der Vorversion umgesetzt – allesamt rückwärtskompatibel.
Vollständige Laravel-Kompatibilität bis Version 13
Das Paket unterstützt nun alle gängigen Laravel-Versionen von 10 bis 13. Entwickler können somit ein und dasselbe Paket in verschiedenen Projekten einsetzen, ohne auf Kompatibilitätsprobleme achten zu müssen.
- Laravel 10
- Laravel 11
- Laravel 12
- Laravel 13
Diese breite Unterstützung vereinfacht die Migration oder den Einsatz in bestehenden Projekten erheblich.
Diff-Vorschau vor dem Import: Fehler früh erkennen
Eine der größten Neuerungen ist die Möglichkeit, Importe vor dem tatsächlichen Schreiben in die Tabelle zu prüfen. Entwickler erhalten dabei eine detaillierte Vorschau, wie sich die Daten verändern würden.
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();Die Vorschau unterteilt die Zeilen in folgende Kategorien:
- Neue Einträge
- Geänderte Einträge
- Gelöschte Einträge
- Ungültige Einträge
- Konflikte
Ein typisches Beispiel für die Ausgabe:
[
'new' => 1,
'changed' => 2,
'deleted' => 0,
'invalid' => 1,
'conflicts' => 0,
]Zusätzlich lässt sich steuern, welche Felder verglichen werden sollen:
$preview = GoogleSheets::connection('users')
->diffAgainst(User::query(), key: 'email')
->only(['name', 'role'])
->except(['updated_at'])
->preview();Diese Funktion eignet sich besonders für Admin-Dashboards oder Freigabeprozesse, bei denen Daten vor der Übernahme geprüft werden müssen.
Erweiterte Sync-Methoden für verschiedene Datenquellen
Version 1.1.0 führt mehrere neue Sync-Optionen ein, die den Datenaustausch zwischen Google Sheets und anderen Quellen vereinfachen.
Synchronisation von Eloquent-Modellen zu Google Sheets
use App\Models\User;
use Olamilekan\GoogleSheets\Facades\GoogleSheets;
$report = GoogleSheets::connection('users')
->syncFromModel(User::class, keyColumn: 'email', options: [
'columns' => ['name', 'email', 'role'],
'conflict' => 'app_wins',
]);Synchronisation von Google Sheets zu Eloquent-Modellen
$report = GoogleSheets::connection('users')
->syncToModel(User::class, keyColumn: 'email');Import und Export von CSV-Dateien
// Import aus CSV
$report = GoogleSheets::connection('users')
->importCsv(storage_path('app/users.csv'), keyColumn: 'email');
// Export in CSV
$report = GoogleSheets::connection('users')
->exportCsv(storage_path('app/users-export.csv'));Synchronisation mit API-Daten
// Import aus API
$report = GoogleSheets::connection('orders')
->syncFromApi(' keyColumn: 'order_id', options: [
'data_key' => 'data',
'headers' => ['Authorization' => 'Bearer '.$token],
]);
// Export in API
$report = GoogleSheets::connection('orders')
->syncToApi(');Jeder Sync-Vorgang liefert einen detaillierten Bericht mit Statistiken zu erstellten, aktualisierten oder fehlerhaften Einträgen.
Zwei-Wege-Sync mit Konfliktlösung
Für bidirektionale Synchronisationen steht nun eine dedizierte Methode zur Verfügung, die Konflikte gezielt behandelt.
$report = GoogleSheets::connection('users')
->syncTwoWay(User::class, keyColumn: 'email', options: [
'conflict' => 'fail',
]);Unterstützte Konfliktstrategien:
app_wins– Die Anwendung entscheidetsheet_wins– Die Tabelle entscheidetskip– Konflikt ignorierenfail– Bei Konflikten abbrechen
Trockenlauf für CLI-Syncs
Mit einem neuen Befehl können Entwickler Sync-Vorgänge im CLI-Modus zunächst simulieren, ohne Änderungen an den Daten vorzunehmen.
php artisan google-sheets:sync "App\\Imports\\UsersImport" users --dry-runDer Trockenlauf vergleicht die zu importierenden Zeilen mit den bestehenden Daten und wendet dabei gültige Validierungsregeln an.
Fehlerprotokolle als separate Tabellenblätter
Statt Validierungsfehler nur zu loggen, können diese nun direkt in ein separates Tabellenblatt geschrieben werden. Das erleichtert Endanwendern die Fehlerbehebung.
$validRows = GoogleSheets::connection('users')->validateWithErrorSheet([
'name' => ['required', 'string'],
'email' => ['required', 'email'],
]);Warteschlangen und Benachrichtigungen für große Syncs
Längere Synchronisationsprozesse lassen sich nun in Warteschlangen auslagern, um die Performance zu steigern.
GoogleSheets::connection('users')
->queueSync('syncFromModel', [User::class, 'email'], queue: 'imports');Zusätzlich können Benachrichtigungen bei Sync-Vorgängen konfiguriert werden, etwa per Slack oder E-Mail.
GoogleSheets::connection('users')->syncFromModel(User::class, 'email', [
'notify' => [
'slack_webhook' => config('services.slack.sync_webhook'),
'mail_to' => 'ops@example.com',
],
]);Automatische Wiederholungen bei API-Fehlern
Temporäre Fehler der Google Sheets API werden nun automatisch mit exponentiellem Backoff und Jitter behandelt. Dies erhöht die Stabilität bei Rate-Limits oder vorübergehenden Ausfällen.
In der Konfiguration:
// config/google-sheets.php
'retry' => [
'enabled' => true,
'attempts' => 3,
'delay' => 250,
'max_delay' => 5000,
],Runtime-Steuerung:
// Mit Wiederholungsversuchen
$rows = GoogleSheets::withRetries(attempts: 5, delay: 500)->all();
// Ohne Wiederholungen
$rows = GoogleSheets::withoutRetries()->all();Optimierte Testumgebung für Entwickler
Für das Testen von Google-Sheets-Integration kann nun eine Mock-Umgebung genutzt werden, die ohne echte API-Aufrufe auskommt.
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',
]);Einfache Aktualisierung auf die neue Version
Die Migration auf Version 1.1.0 gestaltet sich unkompliziert:
# Paket aktualisieren
composer update olamilekan/laravel-google-sheets
# Neue Konfiguration veröffentlichen (falls benötigt)
php artisan vendor:publish --tag=google-sheets-configDas Update bringt nicht nur neue Funktionen, sondern auch eine verbesserte Stabilität und mehr Flexibilität für die Integration von Google Sheets in Laravel-Anwendungen. Mit diesen Erweiterungen lassen sich Geschäftsprozesse noch effizienter gestalten – von automatisierten Datenimports bis hin zu benutzerfreundlichen Fehlerprotokollen.
KI-Zusammenfassung
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.