Executando verificação de segurança...
1

Como lidar com as variáveis de ambiente usadas em .env mas agora em produção?

Recentemente, aprendi sobre .env e a possibilidade de usar variaveis definidas durante todo o projeto e é bastante legal!

Estou desenolvendo um projeto com php e slim e durante o projeto, notei que essas variaveis, se a pessoa tiver alguma noção e saber aonde procurar, consegue ter acesso não somente as variaveis, mas tamebm aos valores que foram atribuidos a essas variaveis.

Então a minha pergunta é:

Como lidar com o env e como lidar com as variaveis de ambiente que você já foram definidas e você etaá usando em todo o projeto, quando chega na hora de colocar o projeto em produção?

1

Depende do jeito que a pessoa gosta ou precisa trabalhar.

As mais comuns são:

  1. Ter um arquivo em produção e outro em desenvolvimento.
  2. Ter variáveis diferentes no mesmo arquivo e em código pega as adequadas

O primeiro é mais simples e se você sobe para a produção de forma automatizada ou tem algo que não vai subir o arquivo de dev inadvertidamente é mais interessante, fácil e é ligeiramente mais eficiente.

É só ter nomes diferentes para o arquivo .env. Ainda terá que saber em que ambiente está, mas assim fica mais fácil organizar. E mesmo que tenha os dois arquivos não corre riscos subindo.

O segundo não te dá preocupação de sobrescrever o arquivo de produção, mas tem que por em código algo para descobrir que está em produção e pegar as variáveis diferentes.

Para fazer isso pode verificar se existe algum arquivo que você nunca tem em dev, então não tem risco de subir sem querer, aí se o arquivo existe sabe que está em produção e sabe que variáveis pegar.

Dependendo de como estão os ambientes, pode verificar o nome do servidor ($_ENV['HOSTNAME'] oi $_SERVER["COMPUTERNAME"]) ou outra informação que só existe em produção. Ou pegar uma configuração do php.ini que só tem em produção, o que é normal quando você nem tem acesso a ele. Só cuidado porque o ambiente de produção você pode não ter tanto controlem então a verificaçaõ pode ser mais interessante ser negativa, ou seja, você verifica se está em dev, onde você tem controle.

Sò tem que lembrar de atualizar os dois arquivos ou locais do arquivo se algo tiver que mudar nos dois ambientes. Por isso, o ideal seria ter um arquivo separado só para o conteúdo que realmente muda e outro para o que vale igual, assim trata-se diferente.

Melhor ainda é não precisar fazer isso, mas nem sempre é possível.

Faz sentido para você?

Espero ter ajudado.

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).