Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-10-2012 05:53:00

gger
Nouveau membre
Date d'inscription: 21-05-2012
Messages: 3

configuration de la base de données

Bonjour,


En se basant sur l'exemple du module Album, si on utilise plusieurs bases de données une de type mysql et une autre de type sqlite dans lesquelles les albums sont listés, comment fait on pour obtenir  la liste complète des albums.

Le getAlbumTable() devrait retourner chaque albumTable des 2 bases de données.
Et là je coince grave, c'est à dire que je ne dépasse pas le stade du service manager de la première base de données cad la mysql:
An exception was raised while creating "Album\Model\AlbumTable"; no instance returned

j'ai essayé de bidouiller l'AdapterServiceFactory et son fameux 'return new Adapter($config['db'])' afin de pouvoir configurer les 2 bases de manière indépendante, et ainsi afin qu'il n'y aie plus qu'à  mettre dans le module.config.php un array 'db" pour la base de données mysql et un array 'db1" pour la base de données sqlite, sans succès .

qqun a une idée ?

merci,
gger

Hors ligne

 

#2 02-10-2012 09:38:21

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: configuration de la base de données

Bonjour,

Quelle est la ligne de code ou se situe l'erreur ?

Hors ligne

 

#3 02-10-2012 09:45:10

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: configuration de la base de données

Pour ce genre de chose l'idéal est d'avoir effectivement 2 bases de données de configurée distinctement (je ne sais pas comment le faire mais j'aurai plutôt fait un array "db" qui contient 2 array de configuration). Pour que ça fonctionne tu dois avoir 2 drivers et donc 2 instances de connexion à la base de données : une pour mysql et une pour sqlite

Ce que tu dois faire pour récupérer tes Albums c'est d'avoir un service qui va avoir connaissance de ces deux instances. Tu vas devoir créer une méthode du genre : getAllAlbum(). Dans cette méthode tu vas faire 2 requêtes une sur la base mysql pour récupérer tous les albums qui y sont présents et une deuxième sur la base sqlite pour récupérer tous les albums. Une fois que tu as ces informations tu merges les 2 résultats (à toi de faire gaffe parce que tu risques d'avoir des conflits au niveau des clés sur les array que tu vas récupérer).

Pour faire ça je pense que tu as besoin de déclarer 2 albumTable et surement d'avoir une interface dont vont hérités tes deux classes pour les méthodes communes.

Hors ligne

 

#4 02-10-2012 11:02:03

gger
Nouveau membre
Date d'inscription: 21-05-2012
Messages: 3

Re: configuration de la base de données

@jf

D:\wamp\client2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:697
An exception was raised while creating "Album\Model\AlbumTable"; no instance returned

D:\wamp\client2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:809
While attempting to create zenddbadapteradapter(alias: Zend\Db\Adapter\Adapter) an invalid factory was registered for this instance type.

Hors ligne

 

#5 02-10-2012 14:22:12

gger
Nouveau membre
Date d'inscription: 21-05-2012
Messages: 3

Re: configuration de la base de données

merci orkin

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