Pare de usar env() dentro da sua aplicação Laravel (fora da config)

Pare de usar env() dentro da sua aplicação Laravel (fora da config)

June 18, 2025

Venho compartilhar com vocês uma dica rápida sobre o Laravel. Vejo muitas pessoas enfrentando problemas ao tentar acessar variáveis de ambiente dentro da aplicação. O erro mais comum acontece quando os desenvolvedores utilizam a função env() diretamente em suas classes ou serviços, para ler configurações do arquivo .env, e depois não entendem por que, em alguns momentos, essa função retorna null.

A explicação é simples: isso acontece por causa do fluxo de inicialização do Laravel. Para ajudar a visualizar, criei um diagrama que explica como esse processo funciona:

Como podemos ver na imagem acima, quando o Laravel recebe uma request (ou executa um comando, job, etc.), ele inicia pelo arquivo index.php, que chama o bootstrap/app.php. Nesse momento, o Laravel carrega as variáveis do arquivo .env e, logo em seguida, lê os arquivos de configuração presentes no diretório config/. Essas configurações são então armazenadas em cache (caso você utilize o comando php artisan config:cache).

Após esse ponto, os Service Providers são registrados e o Kernel da aplicação assume o controle da execução. Por isso, não é recomendado utilizar env() para acessar configurações após essa etapa, pois o Laravel já não dependerá mais do .env diretamente durante o ciclo de vida da aplicação.

Errado (não recomendado fora da config/):

env('CHAVE')

Certo:

config('configuracao.chave')

Seguindo esse padrão, você evita problemas com null e garante que sua aplicação seja compatível com o cache de configuração.

💬 Comentários