Trabalhando com variáveis de ambiente env no PHP e no Vanilla Javascript

Facebook Linkedin Instagram Pinterest

A utilização de variáveis de ambientes é um recurso que podemos usar para passar valores para aplicações web e sites de forma segura e dinâmica. 

Neste artigo vamos ver como criar uma variável de ambiente através do arquivo .htaccess e como utilizá-la para passar um valor para o PHP. 

Além disso, também vamos ver como recuperar o valor de uma variável de ambiente no Javascript sem a utilização de nenhum framework ou biblioteca externa.

Variáveis de ambiente

Segundo a Wikipédia:

“Uma variável de ambiente é um valor nomeado dinamicamente que pode afetar o modo como os processos em execução irão se comportar em um computador.

Elas são parte do ambiente no qual um processo é executado. Por exemplo, um processo em execução pode consultar o valor da variável de ambiente TEMP para descobrir um local adequado para armazenar arquivos temporários, ou a variável HOME ou USERPROFILE para encontrar a estrutura de diretórios pertencente ao usuário que está executando o processo. Desta forma, elas podem afetar a forma como um processo se comporta, e cada processo pode ler e escrever variáveis de ambiente.” – (https://pt.wikipedia.org/wiki/Vari%C3%A1vel_de_ambiente)

No desenvolvimento web, variáveis de ambiente podem ser utilizadas para armazenar valores que podem ser utilizados de forma global por uma aplicação ou site e recuperados por qualquer linguagem de programação “server site”. 

Por exemplo, neste artigo vamos criar uma variável de ambiente que determina o ambiente no qual o site está sendo executado, se no ambiente de produção ou no ambiente de desenvolvimento.

O arquivo htaccess

O arquivo .htaccess (arquivos de configuração distribuída) é um arquivo de configuração em nível de diretório que permite um gerenciamento descentralizado das configurações do servidor web (Apache). 

Por meio deste arquivo é possível substituir algumas configurações do servidor web definidas no arquivo principal de configurações do Apache (httpd.conf), ou definir novas configurações que não estão no httpd.conf.

Criando a variável de ambiente

Explicado o que é o arquivo .htaccess, a primeira coisa que vamos fazer é incluir nele a definição da variável de ambiente que irá determinar o ambiente no qual aplicação web ou site está sendo executado.

O nome da variável de ambiente que vamos criar é APP_ENVIRONMENT. Você pode usar qualquer nome para uma nova variável de ambiente. Vou criar a variável com este nome pois deixa claro que trata-se de uma variável que indica qual o ambiente onde a aplicação (site) está sendo executada mas você pode dar o nome que preferir para a sua variável de ambiente.

Para criar a variável, localize o arquivo .htaccess na pasta raiz do site. Se ele não existir você pode criar lembrando que correto é “.htaccess” (com um ponto no início). Você também pode criar um arquivo .htaccess dentro de uma subpasta com configurações que vão valer somente para esta subpasta. 

Depois de localizar ou criar o arquivo .htaccess, localize a linha com “<IfModule mod_env.c>”. Esta linha verifica se a biblioteca de manipulação de variáveis de ambientes do Apache está instalada e inicia o bloco onde as variáveis de ambientes são definidas.

Se você encontrar, provavelmente já existe alguma variável de ambiente definida dentro do bloco. Neste caso você só vai precisar incluir mais uma linha com a definição da nossa variável. 

Se não localizar a linha “<IfModule mod_env.c>” você terá que criar esse bloco incluindo as linhas abaixo no .htaccess.

Agora, para criar a nossa variável de ambiente vamos usar o comando SetEnv seguido do nome da variável e do seu valor da seguinte forma:

SetEnv APP_ENVIRONMENT "production"

Neste caso, a variável terá o valor “production”, o que indica que estamos no ambiente de produção. Então este arquivo .htaccess deve ser o do ambiente de produção. 

Como no caso estamos apenas fazendo um ensaio sobre o assunto e provavelmente você vai testar os conhecimentos passados neste artigo no seu ambiente de desenvolvimento, você pode deixar o valor da variável como está ou alterar para “development” ou “desenvolvimento” já que o que realmente importa é recuperar o seu valor no PHP e no Javascript seja lá qual for ele.

Recuperando o valor da variável no PHP

Script getenv.php e Json

Para pegar o valor da variável de ambiente APP_ENVIRONMENT, vamos criar um arquivo chamado getenv.php com o conteúdo abaixo. 

Este arquivo vai receber via GET o nome da variável de ambiente e retornar um objeto Json com o nome da variável e o seu valor. Caso ocorra algum erro ou problema na recuperação do valor da variável getenv.php o objeto retornado conterá um código de erro e a descrição do mesmo.

Então crie um arquivo com o nome getenv.php e copie e cole o código abaixo nele.

Passando o valor da variável para o Vanilla Javascript

O Javascript é uma linguagem “client server” que é executada localmente, pelo navegador instalado no computador do usuário. Por isso é impossível para o Javascript pegar o valor de uma variável de ambiente no servidor web. Porém, é possível contornar isto.

Se for necessário pegar o valor de uma variável de ambiente para ser utilizado no Javascript, é possível utilizar o arquivo getenv.php através de uma requisição HTTP. Neste arquivo vou usar a nova Web Fetch API do Javascript mas você também pode usar o velho XMLHttpRequest de sempre, basta fazer as alterações necessárias no código.

Vamos utilizar o Javascript padrão (vanilla) sem nenhum frontend ou biblioteca externa. Para isso vamos criar um arquivo HTML onde vamos incluir o Javascript que vai recuperar no servidor web, o valor da variável de ambiente APP_ENVIRONMENT e exibir o resultado na página.

Então vamos criar um arquivo com o nome testeEnv.html e colar nele o código abaixo com o Javascript.

Hello!

Hello, World!

No arquivo acima, o Javascript recebe um objeto do tipo Json enviado por getenv.php contendo o nome e o valor da variável de ambiente. Se houver algum problema, o Javascript receberá um objeto Json gerado pelo getenv.php que terá somente o código e a mensagem do erro.

Recebido o objeto Json, o Javascript irá exibi-lo no Console do navegador apenas para depuração e alterar o conteúdo do tag h1 da página para exibir o nome e o valor da variável de ambiente.

Vimos neste arquivo como definir o valor de uma variável de ambiente no arquivo .htaccess, como recuperar o seu valor com o PHP e como receber este valor no Javascript padrão (vanilla) sem o uso de nenhum framework ou biblioteca externa. 

Espero que este artigo seja útil. Se você tiver alguma dúvida ou sugestão, deixe seu comentário. Até o próximo artigo.

Jorge Rodrigues

Webmaster e desenvolvedor web full-stack. Self-employed na Concepção Web. Técnico em processamento de dados, com especialização em Programação de Computadores, Redes Locais e em Protocolo e Cabeamento Estruturada de Redes Locais pela Universidade Estácio de Sá.

More Posts

Olá, antes de continuar, precisamos que você forneça algumas informações de contato.

Desenvolvido por Concepção Web.