Git fetch: Como Verificar alterações sem aplicá-las
O Git é uma ferramenta poderosa para controle de versão, amplamente utilizada por desenvolvedores. Ao trabalhar com repositórios Git, é... Leia mais
Desenvolvedor de Software
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.
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.
Exemplo simples:
$nomes = collect(['Ana', 'Bruno', 'Carlos'])
->map(fn($nome) => strtoupper($nome))
->reject(fn($nome) => $nome === 'BRUNO');
print_r($nomes->all()); // ['ANA', 'CARLOS']
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.
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é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 |
Exemplo com groupBy:
$usuarios = collect([
['nome' => 'Ana', 'setor' => 'RH'],
['nome' => 'Bruno', 'setor' => 'TI'],
['nome' => 'Carla', 'setor' => 'TI'],
]);
$agrupados = $usuarios->groupBy('setor');
print_r($agrupados->toArray());
Saída:
[
'RH' => [['nome' => 'Ana', 'setor' => 'RH']],
'TI' => [
['nome' => 'Bruno', 'setor' => 'TI'],
['nome' => 'Carla', 'setor' => 'TI'],
]
]
| 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 |
Usando array functions:
$resultado = array_filter(
array_map(
fn($n) => $n * 2,
[1, 2, 3, 4, 5]
),
fn($n) => $n > 5
);
print_r($resultado); // [3 => 6, 4 => 8, 5 => 10]
Usando Collection:
$resultado = collect([1, 2, 3, 4, 5])
->map(fn($n) => $n * 2)
->filter(fn($n) => $n > 5)
->values(); // Remove as chaves
print_r($resultado->all()); // [6, 8, 10]
As Collections são ainda mais poderosas quando utilizadas em conjunto com o Eloquent ORM. Por exemplo:
$usuarios = User::all();
$ativos = $usuarios->filter(fn($user) => $user->ativo);
Se necessário, você pode converter uma Collection novamente para array com o método all() ou toArray():
$array = $colecao->toArray();
Dica: Use when() para condições elegantes
$dados = collect([1, 2, 3, 4, 5])
->when(true, fn($c) => $c->filter(fn($n) => $n > 2));
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.
O Git é uma ferramenta poderosa para controle de versão, amplamente utilizada por desenvolvedores. Ao trabalhar com repositórios Git, é... Leia mais
Este tutorial rápido e objetivo vai te mostrar como instalar e configurar o OpenSSH no Ubuntu, além de incluir algumas... Leia mais
Sim, dá pra desenvolver Laravel no Windows sem sofrer. Mas você precisa fazer do jeito certo: usando WSL + Valet... Leia mais
Elixir é uma linguagem de programação dinâmica e funcional, desenvolvida por José Valim em 2011, projetada para construir aplicações escaláveis... Leia mais