Was ist diese Bibliothek und wozu dient sie?
Spatie ist keine einzelne Bibliothek, sondern ein ganzes Ökosystem hochwertiger PHP-Pakete, entwickelt von der gleichnamigen belgischen Firma. Spatie ist bekannt für seinen Ansatz, sauberen, testbaren und gut dokumentierten Code zu schreiben. Die Pakete decken ein breites Aufgabenspektrum ab: von der Arbeit mit Mediendateien und Query-Caching bis zur Verwaltung von Rollen und Berechtigungen.
Die Spatie Collection Utilities (spatie/collection-utilities) sind eine Sammlung von Hilfsfunktionen und Klassen, die die Standardmöglichkeiten von Arrays und Collections in PHP erweitern. Sie bieten praktische Methoden zum Filtern, Sortieren, Transformieren und Analysieren von Daten und machen den Code so lesbarer und prägnanter.
Wozu braucht man das? In der modernen PHP-Entwicklung (besonders in Frameworks wie Laravel) ist die Arbeit mit Datensammlungen eine alltägliche Aufgabe. Spatie Collection Utilities erspart das Schreiben von sich wiederholenden Schleifen und Bedingungen, indem es fertige, gut getestete Lösungen bereitstellt. Das beschleunigt die Entwicklung, reduziert Fehler und verbessert die Wartbarkeit des Codes.
Installation
Die Installation der Spatie-Pakete erfolgt über Composer, den Standard-Abhängigkeitsmanager für PHP.
composer require spatie/collection-utilities
Wenn Sie Laravel verwenden, wird das Paket automatisch durch Composer Autoloading registriert. Für andere Frameworks oder reines PHP fügen Sie einfach require 'vendor/autoload.php'; in Ihr Skript ein.
Schnellstart mit Codebeispiel
Nach der Installation können Sie sofort mit den Utilities arbeiten. Die Hauptklasse, mit der Sie arbeiten werden, ist Spatie\CollectionUtilities\Collection. Sie erweitert die Standardklasse Illuminate\Support\Collection (aus Laravel) oder kann als eigenständige Klasse verwendet werden.
<?php
require 'vendor/autoload.php';
use Spatie\CollectionUtilities\Collection;
// Collection erstellen
$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
// Methode filter() für gerade Zahlen
$evenNumbers = $collection->filter(fn($item) => $item % 2 === 0);
// Methode map() zum Verdoppeln jedes Elements
$doubled = $evenNumbers->map(fn($item) => $item * 2);
// Methode toArray() zur Rückumwandlung in ein Array
print_r($doubled->toArray());
// Ausgabe: Array ( [0] => 4 [1] => 8 [2] => 12 [3] => 16 [4] => 20 )
?>
Dieses einfache Beispiel zeigt die Methodenverkettung, die eine Kernfunktion der Arbeit mit Spatie-Collections ist.
Wichtige Methoden/Funktionen
1. filter()
Funktion: Filtert die Collection mithilfe einer Callback-Funktion. Gibt nur die Elemente zurück, für die der Callback true zurückgibt.
Parameter:
callback(callable): Funktion, die das aktuelle Element und seinen Schlüssel erhält. Musstrueoderfalsezurückgeben.mode(int): Optional. Filtermodus (Standard:ARRAY_FILTER_USE_BOTH).
Praktisches Codebeispiel:
$users = new Collection([
['name' => 'Alice', 'age' => 25],
['name' => 'Bob', 'age' => 17],
['name' => 'Charlie', 'age' => 30],
]);
$adults = $users->filter(fn($user) => $user['age'] >= 18);
// Ergebnis: Collection mit Alice und Charlie
2. map()
Funktion: Wendet eine Callback-Funktion auf jedes Element der Collection an und gibt eine neue Collection mit den transformierten Elementen zurück.
Parameter:
callback(callable): Funktion, die das aktuelle Element und seinen Schlüssel erhält. Muss den transformierten Wert zurückgeben.
Praktisches Codebeispiel:
$prices = new Collection([100, 200, 300]);
$withTax = $prices Auch in der Bibliothek
Arbeiten mit CSV in TypeScript: Bibliotheken und Codebeispiele
JSON-Verarbeitung in Java: Bibliotheken und Werkzeuge für die Arbeit mit JSON
Supertest für JavaScript (Node.js): Komplettguide mit Beispielen
Konfiguration von C++-Anwendungen: Bibliotheken und Ansätze