Configuração

Introdução
Todos os arquivos de configuração do framework Laravel são armazenados no config
diretório. Cada opção está documentada, portanto, fique à vontade para examinar os arquivos e se familiarizar com as opções disponíveis.
Esses arquivos de configuração permitem configurar coisas como as informações de conexão do banco de dados, as informações do servidor de e-mail, bem como vários outros valores de configuração básicos, como o fuso horário do aplicativo e a chave de criptografia.
Configuração de Ambiente
Muitas vezes é útil ter valores de configuração diferentes com base no ambiente em que o aplicativo está sendo executado. Por exemplo, você pode desejar usar um driver de cache diferente localmente do que você usa em seu servidor de produção.
Para tornar isso mais fácil, o Laravel utiliza a biblioteca DotEnv PHP. Em uma nova instalação do Laravel, o diretório raiz de seu aplicativo conterá um .env.example
arquivo que define muitas variáveis de ambiente comuns. Durante o processo de instalação do Laravel, este arquivo será copiado automaticamente para .env
.
O .env
arquivo padrão do Laravel contém alguns valores de configuração comuns que podem diferir dependendo se sua aplicação está rodando localmente ou em um servidor web de produção. Esses valores são então recuperados de vários arquivos de configuração do Laravel dentro do config
diretório usando a função env
do Laravel .
Se você estiver desenvolvendo com uma equipe, talvez queira continuar incluindo um .env.example
arquivo com seu aplicativo. Colocando valores de espaço reservado no arquivo de configuração de exemplo, outros desenvolvedores de sua equipe podem ver claramente quais variáveis de ambiente são necessárias para executar seu aplicativo.
Qualquer variável em seu .env
arquivo pode ser substituída por variáveis de ambiente externas, como variáveis de ambiente de nível de servidor ou de sistema.
Segurança de arquivos do ambiente
Seu .env
arquivo não deve ser comprometido com o controle de origem de seu aplicativo, uma vez que cada desenvolvedor / servidor usando seu aplicativo pode exigir uma configuração de ambiente diferente. Além disso, isso seria um risco de segurança no caso de um invasor obter acesso ao repositório de controle de origem, uma vez que quaisquer credenciais confidenciais seriam expostas.
Tipos de Variáveis de Ambiente
Todas as variáveis em seus .env
arquivos são normalmente analisadas como strings, então alguns valores reservados foram criados para permitir que você retorne uma gama mais ampla de tipos da env()
função:
.env Valor | env() Valor |
---|---|
verdade | (bool) verdadeiro |
(verdade) | (bool) verdadeiro |
falso | (bool) falso |
(falso) | (bool) falso |
vazio | (fragmento) ” |
(vazio) | (fragmento) ” |
nulo | (nulo nulo |
(nulo) | (nulo nulo |
Se precisar definir uma variável de ambiente com um valor que contenha espaços, você pode fazer isso colocando o valor entre aspas duplas:
APP_NAME="My Application"
Recuperando a configuração do ambiente
Todas as variáveis listadas neste arquivo serão carregadas no $_ENV
superglobal do PHP quando seu aplicativo receber uma solicitação. No entanto, você pode usar o env
auxiliar para recuperar valores dessas variáveis em seus arquivos de configuração. Na verdade, se você revisar os arquivos de configuração do Laravel, notará que muitas das opções já estão usando este auxiliar:
'debug' => env('APP_DEBUG', false),
O segundo valor passado para a env
função é o “valor padrão”. Este valor será retornado se nenhuma variável de ambiente existir para a chave fornecida.
Determinando o ambiente atual
O ambiente do aplicativo atual é determinado por meio da APP_ENV
variável de seu .env
arquivo. Você pode acessar esse valor por meio do environment
método na App
fachada :
use Illuminate\Support\Facades\App;
$environment = App::environment();
Você também pode passar argumentos para o environment
método para determinar se o ambiente corresponde a um determinado valor. O método retornará true
se o ambiente corresponder a qualquer um dos valores fornecidos:
if (App::environment('local')) {
// The environment is local
}
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
}
A detecção do ambiente de aplicativo atual pode ser substituída pela definição de uma APP_ENV
variável de ambiente no nível do servidor .
Acessando Valores de Configuração
Você pode acessar facilmente seus valores de configuração usando a config
função auxiliar global de qualquer lugar em seu aplicativo. Os valores de configuração podem ser acessados através da sintaxe de “ponto”, que inclui o nome do arquivo e a opção que você deseja acessar. Um valor padrão também pode ser especificado e será retornado se a opção de configuração não existir:
$value = config('app.timezone');
// Retrieve a default value if the configuration value does not exist...
$value = config('app.timezone', 'Asia/Seoul');
Para definir valores de configuração em tempo de execução, passe uma matriz para o config
auxiliar:
config(['app.timezone' => 'America/Chicago']);
Cache de configuração
Para aumentar a velocidade do seu aplicativo, você deve armazenar em cache todos os seus arquivos de configuração em um único arquivo usando o config:cache
comando Artisan. Isso combinará todas as opções de configuração de seu aplicativo em um único arquivo que pode ser carregado rapidamente pela estrutura.
Normalmente, você deve executar o php artisan config:cache
comando como parte do processo de implantação de produção. O comando não deve ser executado durante o desenvolvimento local, pois as opções de configuração frequentemente precisarão ser alteradas durante o desenvolvimento de seu aplicativo.
Se você executar o config:cache
comando durante o processo de implantação, certifique-se de que está apenas chamando a env
função de dentro dos arquivos de configuração. Depois que a configuração for armazenada em cache, o .env
arquivo não será carregado; portanto, a env
função retornará apenas variáveis de ambiente externas no nível do sistema.
Modo de depuração
A debug
opção em seu config/app.php
arquivo de configuração determina quantas informações sobre um erro são realmente exibidas para o usuário. Por padrão, esta opção é definida para respeitar o valor da APP_DEBUG
variável de ambiente, que é armazenada em seu .env
arquivo.
Para desenvolvimento local, você deve definir a APP_DEBUG
variável de ambiente como true
. Em seu ambiente de produção, esse valor deve ser sempre false
. Se a variável for definida como true
em produção, você corre o risco de expor valores de configuração confidenciais aos usuários finais do aplicativo.
Modo de manutenção
Quando seu aplicativo está em modo de manutenção, uma visualização personalizada será exibida para todas as solicitações em seu aplicativo. Isso torna mais fácil “desabilitar” seu aplicativo durante a atualização ou durante a manutenção. Uma verificação do modo de manutenção está incluída na pilha de middleware padrão para seu aplicativo. Se o aplicativo estiver em modo de manutenção, um MaintenanceModeException
será lançado com um código de status de 503.
Para ativar o modo de manutenção, execute o down
comando Artisan:
php artisan down
Você também pode fornecer uma retry
opção para o down
comando, que será definido como o Retry-After
valor do cabeçalho HTTP:
php artisan down --retry=60
Ignorando o modo de manutenção
Mesmo no modo de manutenção, você pode usar a secret
opção de especificar um token de desvio do modo de manutenção:
php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"
Após colocar o aplicativo em modo de manutenção, você pode navegar até a URL do aplicativo correspondente a este token e o Laravel irá emitir um cookie de desvio do modo de manutenção para o seu navegador:
https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515
Ao acessar esta rota oculta, você será redirecionado para a /
rota do aplicativo. Assim que o cookie for emitido para o seu navegador, você poderá navegar no aplicativo normalmente como se ele não estivesse em modo de manutenção.
Pré-renderizando a visualização do modo de manutenção
Se você utilizar o php artisan down
comando durante a implantação, seus usuários ainda podem ocasionalmente encontrar erros se acessarem o aplicativo enquanto as dependências do Composer ou outros componentes de infraestrutura estão sendo atualizados. Isso ocorre porque uma parte significativa do framework Laravel deve inicializar para determinar se sua aplicação está em modo de manutenção e renderizar a visualização do modo de manutenção usando o motor de templates.
Por esta razão, o Laravel permite que você pré-renderize uma visualização do modo de manutenção que será retornada no início do ciclo de solicitação. Esta visualização é renderizada antes que qualquer uma das dependências do seu aplicativo seja carregada. Você pode pré-renderizar um modelo de sua escolha usando a opção down
do comando render
:
php artisan down --render="errors::503"
Redirecionando solicitações de modo de manutenção
Enquanto estiver no modo de manutenção, o Laravel irá mostrar a visualização do modo de manutenção para todos os URLs de aplicativos que o usuário tentar acessar. Se desejar, você pode instruir o Laravel a redirecionar todas as solicitações para uma URL específica. Isso pode ser feito usando a redirect
opção. Por exemplo, você pode redirecionar todas as solicitações para o /
URI:
php artisan down --redirect=/
Desativando o modo de manutenção
Para desativar o modo de manutenção, use o up
comando:
php artisan up
Você pode personalizar o modelo de modo de manutenção padrão definindo seu próprio modelo em resources/views/errors/503.blade.php
.
Modo de manutenção e filas
Enquanto seu aplicativo estiver no modo de manutenção, nenhum trabalho na fila será tratado. Os trabalhos continuarão a ser tratados normalmente quando o aplicativo sair do modo de manutenção.
Alternativas ao modo de manutenção
Como o modo de manutenção exige que seu aplicativo tenha vários segundos de tempo de inatividade, considere alternativas como Laravel Vapor e Envoyer para realizar a implantação de tempo de inatividade zero com o Laravel.