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
-~----------~----~----~----~------~----~------~--~---

Responder a