Configs

Postado 16 de julho de 2011 Por Marco A. Braghim

Através deste módulo é possível guardar informações para serem recapturadas em qualquer lugar do aplicativo. É por aqui que recomendamos armazenar as configurações necessárias para conexão com o banco de dados. Em primeiro lugar para não deixar senha em pasta pública e também para setar as configurações de banco de dados de forma dinâmica, sendo alteradas automaticamente em produção e em ambiente de desenvolvimento.

Vamos adicionar e recuperar as seguintes informações ao Codepass_Configs:

; Here is my file with email configs
[contact]
mail.address = contact@mycompany.com
mail.host = 192.168.1.1
mail.auth.username = company
mail.auth.password = a21sf5eva2e5av5e
// Recupera a instância
$configs = Codepass_Configs::getInstance();

// Adiciona configurações
$configs->addConfig(array('mail' => '../config/email.ini'));

Como parâmetro no método addConfig(), por enquanto, é aceito um array com o nome da configuração, para poder ser recuperada depois (índice), e o nome do arquivo INI onde se encontram estas configurações que serão armazenadas.

Para recuperar as configurações do arquivo ini:

// O parâmetro recebe string ou array
$configs->getConfigs('name');

A saída será:

array(1) {
  ["contact"] => array(1) {
    ["mail"] => array(3) {
      ["address"] => string(21) "contact@mycompany.com"
      ["host"] => string(11) "192.168.1.1"
      ["auth"] => array(2) {
        ["username"] => string(7) "company"
        ["password"] => string(16) "a21sf5eva2e5av5e"
      }
    }
  }
}

Este método também trabalha de forma hierárquica, ou seja, você pode passar um array com o “caminho” até o índice desejado que será retornado, caso encontrado, somente seu conteúdo.

$configs->getConfigs(
	array(
		'mail',
		'contact',
		'mail',
		'auth'
	)
);

Retornando:

array(2) {
  ["username"] => string(7) "company"
  ["password"] => string(16) "a21sf5eva2e5av5e"
}

Caso o índice não seja encontrado o retorno do método será false

———————-

Esta é a utilização principal desta classe, mas ela também pode modificar o ambiente de execução do aplicativo em tempo de execução. Para isto basta utilizar os métodos:

// Seta novo ambiente de desenvolvimento
$configs->setEnvironment('testing');

// Recupera ambiente de desenvolvimento
$configs->getEnvironment();

Esta classe também é provida do método startErrorConfigs() que inicia as configurações de mostragem de erro de acordo com o ambiente de execução.

Deixe uma resposta

WP-Highlight