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:
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 ? )
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
E assim vamos chamar no código da seguinte forma:
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:
e agora olha esta chave:
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
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