Pacotes Spatie para PHP: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é esta biblioteca e para que serve

\n\n

Spatie não é uma única biblioteca, mas sim um ecossistema inteiro de pacotes PHP de alta qualidade, desenvolvido pela empresa belga de mesmo nome. A Spatie é conhecida por sua abordagem na criação de código limpo, testável e bem documentado. Seus pacotes abrangem uma ampla gama de tarefas: desde trabalhar com arquivos de mídia e cache de consultas até gerenciar funções e permissões.

\n\n

A coleção de utilitários Spatie (spatie/collection-utilities) é um conjunto de funções e classes auxiliares que expandem os recursos padrão de arrays e coleções em PHP. Ela fornece métodos convenientes para filtragem, ordenação, transformação e análise de dados, tornando o código mais legível e conciso.

\n\n

Para que serve? No desenvolvimento PHP moderno (especialmente em frameworks como Laravel), trabalhar com coleções de dados é uma tarefa diária. O Spatie Collection Utilities elimina a necessidade de escrever loops e condições repetitivos, oferecendo soluções prontas e bem testadas. Isso acelera o desenvolvimento, reduz o número de erros e melhora a manutenibilidade do código.

\n\n

Instalação

\n\n

A instalação dos pacotes Spatie é feita através do Composer, o gerenciador de dependências padrão para PHP.

\n\n
composer require spatie/collection-utilities
\n\n

Se você estiver usando Laravel, o pacote é registrado automaticamente graças ao autoload do Composer. Para outros frameworks ou PHP puro, basta adicionar require 'vendor/autoload.php'; ao seu script.

\n\n

Início rápido com exemplo de código

\n\n

Após a instalação, você pode começar a usar os utilitários imediatamente. A classe principal com a qual você trabalhará é Spatie\\CollectionUtilities\\Collection. Ela estende a classe padrão Illuminate\\Support\\Collection (do Laravel) ou pode ser usada como uma classe independente.

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse Spatie\\CollectionUtilities\\Collection;\n\n// Criando uma coleção\n$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n\n// Usando o método filter para obter números pares\n$evenNumbers = $collection->filter(fn($item) => $item % 2 === 0);\n\n// Usando o método map para multiplicar cada elemento por 2\n$doubled = $evenNumbers->map(fn($item) => $item * 2);\n\n// Usando o método toArray para converter de volta para array\nprint_r($doubled->toArray());\n// Saída: Array ( [0] => 4 [1] => 8 [2] => 12 [3] => 16 [4] => 20 )\n?>
\n\n

Este exemplo simples demonstra o encadeamento de métodos, que é uma característica chave do trabalho com coleções Spatie.

\n\n

Principais métodos/funções

\n\n

1. filter()

\n

O que faz: Filtra a coleção usando uma função de callback. Retorna apenas os elementos para os quais o callback retornou true.

\n

Parâmetros:

\n
    \n
  • callback (callable): Função que recebe o elemento atual e sua chave. Deve retornar true ou false.
  • \n
  • mode (int): Opcional. Modo de filtragem (padrão ARRAY_FILTER_USE_BOTH).
  • \n
\n

Exemplo de código funcional:

\n
$users = new Collection([\n    ['name' => 'Alice', 'age' => 25],\n    ['name' => 'Bob', 'age' => 17],\n    ['name' => 'Charlie', 'age' => 30],\n]);\n\n$adults = $users->filter(fn($user) => $user['age'] >= 18);\n// Resultado: Collection com Alice e Charlie
\n\n

2. map()

\n

O que faz: Aplica uma função de callback a cada elemento da coleção e retorna uma nova coleção com os elementos transformados.

\n

Parâmetros:

\n
    \n
  • callback (callable): Função que recebe o elemento atual e sua chave. Deve retornar o valor transformado.
  • \n
\n

Exemplo de código funcional:

\

Recommendations