Ao desenvolver aplicações modernas com PHP, uma das tarefas mais comuns é manipular arrays — filtrando, transformando ou agrupando dados. Embora o PHP nativamente ofereça funções poderosas para isso, como array_map, array_filter e array_reduce, o Laravel introduz um recurso que torna esse trabalho mais fluido e expressivo: as Collections.
O que são Collections?
No Laravel, uma Collection é um objeto da classe Illuminate\Support\Collection que encapsula arrays e oferece uma interface fluente, orientada a métodos, para manipular dados. Em vez de trabalhar diretamente com arrays e funções avulsas, você passa a usar métodos encadeáveis, como filter(), map(), pluck(), groupBy() e muitos outros.
Leitura fluente e expressiva: o código se torna mais fácil de ler e manter.
Encadeamento de métodos: facilita a composição de transformações complexas.
Consistência: evita erros comuns com manipulação direta de arrays.
Como criar uma Collection no Laravel
Você pode criar uma collection com o helper global collect():
$dados = collect([1, 2, 3, 4, 5]);
Além disso, muitos métodos internos do Laravel já retornam collections. Por exemplo, uma consulta com Eloquent retorna uma Collection de modelos:
$usuarios = User::where('ativo', true)->get(); // Retorna uma Collection
Métodos úteis das Collections
Método
Descrição
map()
Transforma os itens da collection
filter()
Filtra os itens com base numa condição
pluck()
Extrai um campo de cada item da collection
groupBy()
Agrupa itens com base em uma chave
each()
Itera sobre cada item da collection
first()
Retorna o primeiro item que satisfaz uma condição
contains()
Verifica se um item está presente
sortBy()
Ordena os itens com base em uma chave
Característica
Funções de array (nativas do PHP)
Collections do Laravel
Sintaxe
Procedural
Orientada a objetos
Encadeamento
Limitado (precisa aninhar funções)
Fluido com métodos em cadeia
Retorno
Sempre array
Objeto Collection
Métodos
Limitado ao que o PHP oferece
Rico em recursos (centenas de métodos)
Leitura
Pode ficar verbosa em transformações complexas
Muito mais legível e expressiva
Extensibilidade
Difícil de estender
Pode criar macros e extender Collection
Disponibilidade
Nativo em qualquer PHP
Disponível apenas com Laravel ou ao instalar o pacote separadamente
As Collections no Laravel são uma forma elegante, expressiva e poderosa de trabalhar com arrays e dados em geral. Comparadas às funções nativas do PHP, elas oferecem uma experiência mais fluida, legível e produtiva para o desenvolvedor moderno. Se você ainda não usa, experimente — seu código vai agradecer.
Vamos lá! Em um dia qualquer estava eu a rolar o feed do Linked-In e um determinado post me chamou a atenção e achei válida a idéia de compartilhar fontes de cursos gratuitos e até mesmo pagos para ajudar a quem quer…
Tabela para consulta rápida a convenção de nomes utilizadas em projetos Laravel: O que Como Bom Ruim Controller singular ArticleController ArticlesController Route plural articles/1 article/1 Named route snake_case with…