Variáveis ambientes PHP
Definindo e usando variáveis de ambiente dentro do PHP
- A primeira coisa a fazer é criar o arquivo composer.json na pasta raiz do projeto, com o seguinte padrão.
{
"name": "starting/mvc",
"autoload": {
"psr-4": {
"App\\":"app/"
}
}
}
- Depois de criar seu arquivo composer.json, você precisa executar o seguinte comando em seu terminal, lembre-se de que você precisa estar na pasta raiz de seu projeto.
composer install
se tudo estiver ok, uma pasta VENDOR foi criada em seu diretório, esta pasta contém os arquivos necessários para realizar as importações automáticas de nossos arquivos PHP.
- Em sua pasta raiz, você precisa criar um arquivo index.php, é onde nosso aplicativo irá iniciar.
// Arquivo index.php
<?php
require __DIR__.'/vendor/autoload.php';
se tudo correr bem você terá a seguinte estrutura de pastas e arquivos, não se preocupe com os arquivos dentro da pasta VENDOR.
- Agora vamos criar o arquivo ".env" na raiz do projeto, onde vão ficar as variáveis de ambiente.
// Arquivo .env com variáveis ambiente para gerenciar banco de dados.
HOST=localhost
USER_NAME=root
PASSWORD=123456
DATABASE_USE_NAME=rsanttos
- Agora vamos criar nossa classe para carregar nossas variáveis de ambiente em nosso projeto PHP. Na raiz do nosso projeto vamos criar a pasta "app", esta é a pasta que definimos em "composer.json", dentro desta pasta criaremos também outra chamada "Common" e dentro desta pasta nosso arquivo "Environment.php" com o código:
<?php
namespace App\Common;
class Environment {
/**
* Método para carregar variáveis ambiente
* @param string $dir caminho do arquivo .env
*/
public static function load($dir) {
// Verificar se o arquivo .env existe
if(!file_exists($dir.'/.env')) {
return false;
}
// Define as variáveis
$lines = file($dir.'/.env');
foreach($lines as $line) {
putenv(trim($line));
}
}
}
Esta é a estrutura de pastas e arquivos que temos até agora.
- Agora vamos carregar nossa classe no arquivo "index.php" e chamá-la.
// Arquivo index.php
<?php
require __DIR__.'/vendor/autoload.php';
// Classe Environment
use \App\Common\Environment;
// Chamada
Environment::load(__DIR__);
$env = getenv();
print_r($env);
// Para obter os valores das variáveis de ambiente basta usar a função "getenv();"
echo getenv('HOST')."\n";
echo getenv('USER_NAME')."\n";
echo getenv('PASSWORD')."\n";
echo getenv('DATABASE_USE_NAME')."\n";
// Para testar se está funcionando, basta digitar seu terminal.
php index.php
- Agora vamos criar nosso arquivo ".env.example", este arquivo é usado para garantir uma certa segurança, já que o arquivo ".env" só pode estar presente em seu ambiente de produção. O arquivo ".env.example" é uma cópia do seu arquivo ".env", agora em sua classe Environment dentro da pasta "app/Common" você pode alterar o caminho ".env" para ".env.example".