Introdução: Por que funções helper são essenciais no Laravel
\n\nSe você já programou em Laravel, com certeza já passou por esta situação: no controller ou na view, você precisa formatar uma data, cortar um texto, verificar permissões ou gerar um slug repetidamente. Você copia e cola o mesmo trecho de código de projeto em projeto, e depois se arrepende da duplicação.
\n\nParece familiar? Bem-vindo ao clube. No Stack Overflow, a pergunta "How to create custom helper functions in Laravel" acumula milhares de visualizações — e não é por acaso. Funções helper (ou simplesmente "helpers") são sua maneira de dizer "não" ao copiar e colar e "sim" a um código limpo e reutilizável.
\n\nNeste tutorial, não vamos apenas mostrar como criar sua primeira função helper. Vamos abordar três métodos comprovados — desde o mais simples até o mais avançado com carregamento automático via Composer. Você aprenderá a organizar seus helpers para que não virem uma bagunça e como testá-los sem dor de cabeça.
\n\nVamos nessa!
\n\nO que é uma função helper e por que você precisa dela?
\n\nUma função helper é uma função PHP comum que executa uma tarefa específica. O Laravel já possui helpers nativos: str_slug(), route(), config() e outros. Mas mais cedo ou mais tarde, você precisará de algo personalizado — como uma função para formatar número de telefone ou gerar um identificador único.
Vantagens dos helpers customizados:
\n- \n
- Reutilização de código — escreva uma vez, use em todo lugar. \n
- Legibilidade — em vez de 10 linhas com condições, escreva
formatPhone($number). \n - Testabilidade — helpers são fáceis de cobrir com testes unitários. \n
- Gerenciamento centralizado — altere a lógica em um lugar e ela se aplica a todo o projeto. \n
Mas há uma armadilha: a organização incorreta dos helpers pode transformar seu projeto em um caos. Por isso, vamos fazer do jeito certo desde o início.
\n\nMétodo 1: Clássico — arquivo helpers.php manual
\n\nO método mais simples e direto para iniciantes. Crie um arquivo app/helpers.php e inclua-o no composer.json.
Passo 1. Crie o arquivo helpers.php
\n\nVá até a raiz do seu projeto Laravel e crie o arquivo app/helpers.php. Dentro, escreva uma função simples:
<?php\n\nif (!function_exists('formatDate')) {\n function formatDate($date, $format = 'd/m/Y')\n {\n if (!$date) {\n return null;\n }\n return Carbon\\Carbon::parse($date)->format($format);\n }\n}\n\nObserve o uso do if (!function_exists(...)). Isso evita conflitos caso a função já esteja definida em outro lugar. Sempre use esta construção.
Passo 2. Inclua o arquivo via Composer
\n\nAbra o composer.json e na seção autoload adicione:
"files": [\n "app/helpers.php"\n]\n\nO resultado deve ser algo assim:
\n\n"autoload": {\n "psr-4": {\n "App\\\\": "app/"\n },\n "files": [\n "app/helpers.php"\n ]\n}\n\nAgora execute o comando no terminal:
\n\ncomposer dump-autoload\n\nPronto! Agora você pode usar formatDate() em qualquer lugar da sua aplicação Laravel — em controllers, models, views Blade.
Método 2: Via Service Provider (mais avançado)
\n\nEste método é ideal se você quiser controlar rigorosamente quando e quais helpers são carregados. Por exemplo, se você tem helpers apenas para o admin ou para a API.
\n\nPasso 1. Crie um Service Provider
\n\nExecute o comando artisan:
\n\nphp artisan make:provider HelperServiceProvider\n\nAbra o arquivo criado app/Providers/He