Configs
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.