Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-09-2008 21:20:21

pinouf
Membre
Date d'inscription: 05-09-2008
Messages: 41

[Résolu] Récupérer l'instance d'une connection à une base de données

Bonjour,

Je suis débutant sur zend framework smile
j'ai une question au sujet de la récupération d'une instance de la connexion

comment je fais?

est ce une bonne idée de faire une méthode dans le model de ce genre

Code:

public function getZendDb(){
            if($this->db == null){
                $config = Zend_Registry::get('config');
                $this->db = Zend_db::factory($config->db->adapter, $config->db->config->toArray());
            }
            return $this->db;
        }

Cela revient à dire qu'il faut à chaque fois crée cette méthode dans chaque model lorsqu'on a besoin de ce connecter a la base de donnée...

Une deuxième solution serait peut être
Est ce une bonne idée de l'initialisé une fois pour toute dans index.php et de l'enregistrer dans le registre?

merci smile

Dernière modification par Mr.MoOx (29-09-2008 11:44:13)

Hors ligne

 

#2 27-09-2008 21:28:17

acharrex
Membre
Lieu: Suisse
Date d'inscription: 27-04-2008
Messages: 135

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Salut,

Connectes-toi simplement à ta base de données dans le bootstrap. Cela t'éviteras de devoir récupérer ta config dans chaque modèle wink

Hors ligne

 

#3 28-09-2008 09:24:10

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

C'est une meilleure idée de l'instancier une fois dans le bootstrap et de mettre ta connexion dans le registre.

En termes de perfs, ça ne pénalise pas les choses dans la mesure où la connexion n'est réellement créée avec la base de données que lors de la première requête.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 28-09-2008 10:21:01

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

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Perso je fais ça:

Code:

$dbAdapter = Zend_Db::factory($dbConfig);
Zend_Db_Table::setDefaultAdapter($dbAdapter);

Ainsi de n'importe où je récupère ma connexion de cette manière

Code:

$db = Zend_Db_Table::getDefaultAdapter();

Hors ligne

 

#5 29-09-2008 11:20:15

pinouf
Membre
Date d'inscription: 05-09-2008
Messages: 41

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Bonjour smile
Merci de vos réponses
c'est éxactement ce que je cherchais

$db = Zend_Db_Table::getDefaultAdapter();

merci encore=)

Hors ligne

 

#6 29-09-2008 11:45:16

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

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Donc le sujet est [Résolu] !
Merci de penser à le marquer, Ca sert aux autres.
Bon cette fois ci je l'ai fais wink

Hors ligne

 

#7 02-10-2008 07:41:09

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Mr.MoOx a écrit:

Perso je fais ça:

Code:

$dbAdapter = Zend_Db::factory($dbConfig);
Zend_Db_Table::setDefaultAdapter($dbAdapter);

Ainsi de n'importe où je récupère ma connexion de cette manière

Code:

$db = Zend_Db_Table::getDefaultAdapter();

Ici pas de registre alors si j'ai bien compris ?

Dernière modification par BeRoots (02-10-2008 07:41:31)


wink Non au language SMS sur nos forums wink

Hors ligne

 

#8 02-10-2008 08:54:10

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

Re: [Résolu] Récupérer l'instance d'une connection à une base de données

Non effectivement, L'adaptateur par default est stocké en static dans Zend_Db_Table_Abstract smile

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