Olá, o meu ficou assim:
#switch between configs
function __construct() {
#wildcard the subdomains
$host_r = explode('.', $_SERVER['SERVER_NAME']);
// unnecessary line
//if(count($host_r)>2) while(count($host_r)>2)array_shift($host_r);
$mainhost = implode('.', $host_r);
#switch between servers
switch(strtolower($mainhost)) {
case 'sistemas.gbvudx.qsl.br':
$this->default = $this->default;
break;
case 'localhost1':
$this->default = $this->test;
break;
case 'localhost':
$this->default = $this->test;
break;
default:
$this->default = $this->test;
}
}
Copiei de um dica e fiz as alterações devidas. Funciona 100% também.
$this->default e $this->test
São arrays para cada uma das configurações (poderiam haver N).
Para compatibilidade com PHP4 (meu caso) acrescentar:
#php 4 compatibility
function DATABASE_CONFIG() {
$this->__construct();
}
Abraço,
Benito
On 12/7/07, Juan Basso <[EMAIL PROTECTED]> wrote:
>
>
> Boa a tática. :) (PS: Eu sempre me esqueço que DATABASE_CONFIG é uma
> classe, sempre acho que é um Array, não sei porquê... hehehe)
>
> Só uma sugestão no código, substitua:
> $oldDebugLevel = error_reporting(0);
> $link = mysql_connect($this->users['host'], $this->users['login'],
> $this->users['password']);
> error_reporting($oldDebugLevel);
>
>
> por:
> $link = @mysql_connect($this->users['host'], $this->users['login'],
> $this->users['password']);
>
>
> O arroba na frente das funções serve para fazer o que você fez com o
> error_reporting. :)
>
>
> Juan Basso
>
>
> HR escreveu:
>
> > Funcionou como m�gica... A gente fica t�o dentro do framework que
> > esquecemos q estamos trabalhando com PHP :-)
> >
> > Na classe DATABASE_CONFIG em app/config/database.php:
> > 1. Tenho 3 configura��es:
> > - default: local
> > - users: servidor de usuarios
> > - users_backup: retundancia do servidor de usuarios
> >
> > 2. Inclu� as fun��es:
> > function __construct() {
> > if(!$this->usersIsOnline()){
> > $this->users= $this->users_backup;
> > }
> > }
> >
> > function usersIsOnline(){
> > $oldDebugLevel = error_reporting(0);
> > $link = mysql_connect($this->users['host'],
> > $this->users['login'], $this->users['password']);
> > error_reporting($oldDebugLevel);
> >
> > if (!$link) {
> > return false;
> > } else {
> > mysql_close($link);
> > return true;
> > }
> > }
> >
> > Valeu,
> > HR
> >
> > On 5 dez, 13:46, "Josenivaldo Benito Junior" <[EMAIL PROTECTED]>
> > wrote:
> > > N�o sei se entendi direito mas, no database.php do cake voc�,
> provavelmente
> > > est� selecionando entre uma das configura��es certo?
> > >
> > > Fa�a uma fun��o ali (m�todo construtor ou qualquer coisa que seja
> executada
> > > ali) que teste qual server est� dispon�vel.
> > >
> > > On 12/5/07, HR <[EMAIL PROTECTED]> wrote:
> > > > Tenho um sistema que usa 2 configura��es de banco de dados, uma
> local
> > > > e outra em outro servidor usada somente para login e profile. At� a�
> > > > tudo bem.
> > >
> > > > Algu�m sabe como podemos proceder para que se este servidor externo
> > > > (usuarios.xxx.com) estiver fora do ar, o sistema use um outro
> servidor
> > > > (usuarios2.xxx.com)?
> >
>
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do
Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---