Configuracão da aplicaçao

Ola pessoal, como eu posso fazer o seguinte, eu tenho um tabela que guarda alguma opcoes de configuraçao do sistema, como eu faço para setar esta confuraçoes para que eu nao fique sempre consultando esta tabela, eu tentei utilizar a extensao Econfig, Myconfig mais nao funcionou eu nao seta as informaçoes do banco.

Acho que deve ter um outra forma, alguem pode me ajudar.

crie uma class com um methodo estatico para recuperar os dados e cheque se o valor dos dados esta preenchido e se nao faça a query no banco

por exemplo




class EConfig{

 	public static $data;

  	static function getData(){

        	if(empty(self::$data))

                	self::$data=self:loadData();

       	return self::$data;

  	}

  	protected static function loadData(){

      	return MyModel::model()->findAll();

  	}

 	protected static function saveData(){

      	//faça um metodo apra salvar os dados caso precise

  	}

}



Blz Gustavo,

Como eu faria para pegar os dados, e eu teria que colocar a chamada no main.php e a classe na pasta componets?

apenas colocar nos componets

provavelmente no main.php ja tem o import de toda as pasta components

para chamar use




EConfig::getData();



ou extenda a classe EConfig de CComponents




class EConfig extends CComponents{

//mesmo codigo

}



sete em components no main




components=>array(

  //outros components

  'econfig'=>array('class'=>'EConfig'),

)



e use como




echo Yii::app()->econfig->data;



Value me ajudou muito obrigado!

Dá uma olhada no manual pela parte de Data Caching, utilizando um CDbCacheDependency.

Ou então setar um cache com um valor alto de duração (tipo, para consultar a tabela somente de 1 em 1 hora).

Eu fiz de outra forma.

/global.php




function configuracao($name) {

    return Configuracao::model()->find("nome = ?", array($name));

}



Toda vez que preciso dos dados do banco eu chamo ele


echo configuracao('titulodosite');