Packages Spatie pour PHP : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que cette bibliothèque et pourquoi l'utiliser ?

Spatie n'est pas une simple bibliothèque, mais tout un écosystème de packages PHP de haute qualité, développé par la société belge du même nom. Spatie est reconnue pour son approche de création de code propre, testable et bien documenté. Leurs packages couvrent un large éventail de tâches : de la gestion des fichiers multimédias et du mise en cache des requêtes à la gestion des rôles et des permissions.

La collection d'utilitaires Spatie (spatie/collection-utilities) est un ensemble de fonctions et de classes auxiliaires qui étendent les capacités standard des tableaux et des collections en PHP. Elle offre des méthodes pratiques pour filtrer, trier, transformer et analyser les données, rendant le code plus lisible et concis.

Pourquoi en avez-vous besoin ? Dans le développement PHP moderne (notamment avec des frameworks comme Laravel), travailler avec des collections de données est une tâche quotidienne. Spatie Collection Utilities vous évite d'écrire des boucles et des conditions répétitives en proposant des solutions prêtes à l'emploi et bien testées. Cela accélère le développement, réduit les erreurs et améliore la maintenabilité du code.

Installation

L'installation des packages Spatie se fait via Composer, le gestionnaire de dépendances standard pour PHP.

composer require spatie/collection-utilities

Si vous utilisez Laravel, le package s'enregistre automatiquement grâce à l'autoloading de Composer. Pour d'autres frameworks ou du PHP pur, ajoutez simplement require 'vendor/autoload.php'; dans votre script.

Démarrage rapide avec un exemple de code

Après l'installation, vous pouvez immédiatement utiliser les utilitaires. La classe principale avec laquelle vous travaillerez est Spatie\CollectionUtilities\Collection. Elle étend la classe standard Illuminate\Support\Collection (de Laravel) ou peut être utilisée comme une classe autonome.

<?php
require 'vendor/autoload.php';

use Spatie\CollectionUtilities\Collection;

// Création d'une collection
$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

// Utilisation de la méthode filter pour obtenir les nombres pairs
$evenNumbers = $collection->filter(fn($item) => $item % 2 === 0);

// Utilisation de la méthode map pour multiplier chaque élément par 2
$doubled = $evenNumbers->map(fn($item) => $item * 2);

// Utilisation de la méthode toArray pour reconvertir en tableau
print_r($doubled->toArray());
// Résultat : Array ( [0] => 4 [1] => 8 [2] => 12 [3] => 16 [4] => 20 )
?>

Cet exemple simple illustre l'enchaînement de méthodes, une caractéristique clé du travail avec les collections Spatie.

Méthodes et fonctions principales

1. filter()

Fonction : Filtre la collection à l'aide d'une fonction de rappel (callback). Ne retourne que les éléments pour lesquels le callback renvoie true.

Paramètres :

  • callback (callable) : Fonction qui reçoit l'élément courant et sa clé. Doit renvoyer true ou false.
  • mode (int) : Optionnel. Mode de filtrage (par défaut ARRAY_FILTER_USE_BOTH).

Exemple de code fonctionnel :

$users = new Collection([
    ['name' => 'Alice', 'age' => 25],
    ['name' => 'Bob', 'age' => 17],
    ['name' => 'Charlie', 'age' => 30],
]);

$adults = $users->filter(fn($user) => $user['age'] >= 18);
// Résultat : Collection avec Alice et Charlie

2. map()

Fonction : Applique une fonction de rappel à chaque élément de la collection et retourne une nouvelle collection avec les éléments transformés.

Paramètres :

  • callback (callable) : Fonction qui reçoit l'élément courant et sa clé. Doit renvoyer la valeur transformée.

Exemple de code fonctionnel :

$prices = new Collection([100, 200, 300]);
$withTax = $prices                    

Recommendations