Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-07-2009 10:01:54

larenzu
Membre
Date d'inscription: 04-03-2008
Messages: 77

Se connecter à 2 bdd ?

Bonjour , j'ai une bdd avec la liste des users avec leurs login et pass.

J'ai développé plusieurs applications qui sont soumise à authentification et mon but serait d'avoir une bdd pour la connexion et les autres bdd seraient pour les applis.

J'ai fais ceci dans mon bootstrap :

Code:

// load configuration
$config = new Zend_Config_Ini('./application/config.ini', 'general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

// setup database
$db = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('dbAdapter', $db);

// load configuration
$config2 = new Zend_Config_Ini('./application/config.ini', 'authentification');
$registry2 = Zend_Registry::getInstance();
$registry2->set('config', $config2);

// setup database
$db = Zend_Db::factory($config2->db->adapter,  $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('authentification', $db);

dans mon config.ini j'ai :

Code:

[general]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = 
db.config.dbname = besoin
[authentification]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = 
db.config.dbname = auth

Dans mon controller Auth de mon appli j'ai ceci :

Code:

Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry::get('authentification');

il trouve bien la bdd mais ensuite une fois le login effectué quand je redirige vers indexController j'aimerai bien redispatcher sur ma bdd général.

Vue que j'utilise des requetes comme ceci :

$fourniture=new Fournitures();
$where="quantite < 5";
$result=$fourniture->fetchAll($where);

Je ne sais pas redispatcher sur la bonne bdd


Vous avez une idée ?

Hors ligne

 

#2 31-07-2009 09:12:00

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Se connecter à 2 bdd ?

Le "problème" c'est cette ligne de code en double

Code:

Zend_Db_Table::setDefaultAdapter($db);

Elle indique à tes Zend_Db_Table d'utiliser cette base par default. A toi de bien indiquer une seule fois ta base générale. Je pense que ça devrais suffire.

Hors ligne

 

#3 31-07-2009 09:22:27

larenzu
Membre
Date d'inscription: 04-03-2008
Messages: 77

Re: Se connecter à 2 bdd ?

ah d'accord merci ,

Mais si je veux utiliser une base secondaire juste pour l'authentification , comment je fais ?

Hors ligne

 

#4 31-07-2009 09:59:54

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Se connecter à 2 bdd ?

Code:

$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get('authentification'));

Quelque chose du genre, ça devrait t'aider !

PS: Pour tes noms de variables dans ton registre, utilise des noms plus travaillés même si ça peut paraître lourd, c'est peut être plus propre. Genre 'Monapp_Db_Adapter_Auth'. Enfin j'dis ça, j'dis rien smile

Hors ligne

 

#5 31-07-2009 11:05:06

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Se connecter à 2 bdd ?

Pour ma part je fais comme ceci :

Code:

class Model_DbTable_MaTable extends Zend_Db_Table_Abstract
{
    public function init() {
        $this->_db = Zend_Registry::get("2edb");
        }
       .............
}

ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages