Helpers personalizados em Laravel: guia passo a passo

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

Introdução: Por que funções helper são essenciais no Laravel

\n\n

Se 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\n

Parece 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\n

Neste 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\n

Vamos nessa!

\n\n

O que é uma função helper e por que você precisa dela?

\n\n

Uma 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.

\n\n

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
\n\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\n

Método 1: Clássico — arquivo helpers.php manual

\n\n

O método mais simples e direto para iniciantes. Crie um arquivo app/helpers.php e inclua-o no composer.json.

\n\n

Passo 1. Crie o arquivo helpers.php

\n\n

Vá até a raiz do seu projeto Laravel e crie o arquivo app/helpers.php. Dentro, escreva uma função simples:

\n\n
<?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\n

Observe o uso do if (!function_exists(...)). Isso evita conflitos caso a função já esteja definida em outro lugar. Sempre use esta construção.

\n\n

Passo 2. Inclua o arquivo via Composer

\n\n

Abra o composer.json e na seção autoload adicione:

\n\n
"files": [\n    "app/helpers.php"\n]
\n\n

O resultado deve ser algo assim:

\n\n
"autoload": {\n    "psr-4": {\n        "App\\\\": "app/"\n    },\n    "files": [\n        "app/helpers.php"\n    ]\n}
\n\n

Agora execute o comando no terminal:

\n\n
composer dump-autoload
\n\n

Pronto! Agora você pode usar formatDate() em qualquer lugar da sua aplicação Laravel — em controllers, models, views Blade.

\n\n

Método 2: Via Service Provider (mais avançado)

\n\n

Este 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\n

Passo 1. Crie um Service Provider

\n\n

Execute o comando artisan:

\n\n
php artisan make:provider HelperServiceProvider
\n\n

Abra o arquivo criado app/Providers/He

Blogs

Book Recommendations