';

Olá pessoal,
Hoje vou dar uma dica que eu aprendi com o meu amigo @rafaelxy, que é uma forma de sua aplicação ficar pronta para rodar em qualquer ambiente.

Como assim qualquer ambiente?
Por exemplo você roda sua aplicação localmente na sua máquina e depois tranfere para um servidor de teste (homologação) e por fim para um
servidor de produção (servidor final), esses seriam os ambientes que eu to falando.
Então vou ensinar como deixar isso funcionando sem ter que ficar toda vez alterando os arquivos e tal.

Primeiramente você deve definir quais ambientes teremos:
Eu geralmente uso 3 ambientes:
– Local (development)
– Teste (staging)
– Final (production)

Então com o php vamos buscar esse ambiente no apache, e colocar em uma constante.
[php]
// Define application environment
defined(‘APPLICATION_ENV’)
|| define(‘APPLICATION_ENV’, (getenv(‘APPLICATION_ENV’) ? getenv(‘APPLICATION_ENV’) : ‘production’));
[/php]

Depois basta definir nossos valores de acordo com o ambiente.

No exemplo abaixo estou definindo os dados de conexão ao banco.

[php]

switch(APPLICATION_ENV)
{
case ‘production’:
$db_name = ‘x’;
$db_user = ‘x’;
$db_pass = ‘x’;
$db_host = ‘x’;
break;
case ‘staging’:
$db_name = ‘y’;
$db_user = ‘y’;
$db_pass = ‘y’;
$db_host = ‘y’;
break;
case ‘development’:
$db_name = ‘z’;
$db_user = ‘z’;
$db_pass = ‘z’;
$db_host = ‘z’;
break;

}
[/php]

Em seu .htaccess ou ao configurar o virtual host você define o ambiente da aplicacao.
Basta colocar:

[shell]
SetEnv APPLICATION_ENV development
[/shell]
Espero que tenham gostado.


6 Comments

@rafaelxy · 2019-01-22 at 17:27

É sempre bom lembrar que separar todas essas informações de banco que mudam com o ambiente em arquivos de configuração (.ini, .inc, etc) é uma ótima prática!

😀

@rafaelxy · 2010-10-05 at 21:42

É sempre bom lembrar que separar todas essas informações de banco que mudam com o ambiente em arquivos de configuração (.ini, .inc, etc) é uma ótima prática!

😀

Tayron Miranda · 2019-01-22 at 17:27

Eu poderia em vez de usar sessão, apenas criar uma variável, tipo: $ambiente = ‘Produção’; no começo do arquivo de conexão com o banco de dados e abaixo fazer o switch?

    @emersonbroga · 2019-01-22 at 17:37

    Tayron, poderia sim…
    A questao de usar uma constante é que fica mais facil/padronizado, e você pode utilizar essa constante para outras verificações no projeto, não se limitando apenas a conexção do banco.

    Obrigado pelo comentario.

Tayron Miranda · 2011-05-16 at 10:49

Eu poderia em vez de usar sessão, apenas criar uma variável, tipo: $ambiente = ‘Produção’; no começo do arquivo de conexão com o banco de dados e abaixo fazer o switch?

    @emersonbroga · 2011-05-22 at 21:01

    Tayron, poderia sim…
    A questao de usar uma constante é que fica mais facil/padronizado, e você pode utilizar essa constante para outras verificações no projeto, não se limitando apenas a conexção do banco.

    Obrigado pelo comentario.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *