"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

Publicado em 2024-11-08
Navegar:861

Sempre estamos na correria e querendo desenvolver o mais rápido possível, e muitas vezes acabamos pegando os velhos hábitos e construindo os velhos softwares, um item que podemos melhorar bastante é esse queridinho chamado environment, vamos entender um pouco mais sobre isso.


Antes de tudo gostaria de mostrar aqui o foco no conceito de configurações para o laravel, não irei me preocupar com os padrões restantes, como o de resources ou outros afins.

1 - Vamos buscar o conhecimento!

Há um tempo escutei que eu não podia fazer essa passagem de ENV dentro dos meus códigos malucos, fiquei tipo; ué
Então o propósito é entender os motivos, porque assim, conseguimos tomar melhores decisões como engenheiros.

1.1 - Maneira correta ou um ponto de vista ?

Então vamos lá pequeno e futuro mestre, vamos colocar um valor em uma variável de ambiente para podermos brincar, então vamos chamar de:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

Vamos para o primeiro ponto, ótima decisão em ter colocado essa configuração como uma variável de ambiente, assim você torna tudo mais fácil para gerenciar diferentes ambientes ( Produção, homologação, Caso você tenha ? ) e muito mais seguro, porque esse valor não vai ser exposto quando você realizar aquele git push maroto no seu repositório (git/bitbucket), já imaginou seu secret de água vazado na internet que triste.

E para recuperar este valor no Laravel podemos utilizar o método env() ou também usar algum outro pacote como por exemplo a Support da Illuminate ( me lembra os minions, não sei porque ? )

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

env: Helper Laravel ( Que utiliza o Env::get )
Env::get: Classe Env do package Support Illuminate

Nossa, está pronto, então porque ficar inventando moda ? A real é que isso não é uma boa ideia, vou explicar o porque em breve, continue comigo.
Para a solução diferente, podemos citar os arquivos de configuração que irão recuperar o valor do environment criado, assim o arquivo de configuração fica centralizado e vamos lá, fala sério! muito melhor para ler um código.

Nessa situação específica você já pode utilizar o arquivo de config existente, chamado services.php, mas nada impede que você crie um arquivo para o seu contexto específico.

No caminho config/services.php

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

E assim vamos chamar no código da seguinte forma:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes


2 - Legal, mas porque eu devo usar configs pra recuperar variáveis e não apenas buscá-las diretamente ?

Vou tentar mostrar algumas razões:

2.1 - Aumento de desempenho e melhor utilização de IO

Pense na seguinte situação, você tem arquivos em produção que serão acessados a todo instante realizando um IO considerável o que vai aumentar recursos de máquina e dependendo da situação lentidão no sistema ? ( E acredite, até você achar o problema de fato, você irá passar por coisas que vão colocar em dúvida todo o seu conhecimento )

Quando falamos do ambiente em produção o recomendado é você fazer cache dos seus lindos arquivos de configuração, com o Laravel você pode utilizar o artisan

php artisan config:cache

Esse lindo comando pega todos os arquivos de configurações e seus respectivos valores e os compila em um único arquivo php, o que aumenta o desempenho. Isso se dá ao fato que os números de IO é reduzido para 1

Curiosidade: Quando você utiliza esse comando o env() começa a retornar NULL porque ele desabilita esta função. Então se do "Neida" um env() seu parou de funcionar é isso.

Env() Executam operação de IO e elas são caras e lentas.

O melhor é fazer essa operação uma única vez no início da aplicação do que você ter que executar a operação toda vez que necessitar de um env.

2.2 - Organização e padronização da melhor maneira possível

Você poderá facilmente manter todas as suas configurações como quiser. Você pode colocar o nome do cachorro que quiser, criar uma pasta e estruturar todos os arrays como quiser também, isso deixará a estrutura mais limpa ( por favor, use com moderação )
Por exemplo:

Olha essa chave:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

e agora olha esta chave:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

Na minha humilde opinião a 1º é muito melhor.

E tirando que você poderá ter suas configurações semelhantes no lugar correto e centralizado sem precisar colocá-las "aleatoriamente" em seu código, e eu gosto bastante dessa ideia de estruturar o array que faça total sentido para aplicação.

E a orientação para novos desenvolvedores fica muito mais simples, já que você poderá informar onde e como fazer uma nova configuração.

Mantenha o simples, seja você a diferença!

Obrigado por tudo até aqui.

Fonte:

Laravel 11 Documentação Configuration

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/paulocavalcante/horas-e-uma-variavel-de-ambiente-vou-usar-o-env-calma-calma-deixa-eu-te-falar-uma- coisa- antes-3hk?1Se houver alguma infração, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3