Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-10-2009 14:37:30

armalex
Nouveau membre
Lieu: 44100 Nantes
Date d'inscription: 07-10-2009
Messages: 5
Site web

[Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Bonjour à tous,

Nouveau sur le framework. nouveau sur le forum ...
Je pense que la réponse doit se trouver dans les faq mais inaccessible aujourd'hui

Dès que je rentre le code suivant dans le _initdb de mon bootstrap()

try{
             $config = new Zend_Config($this->getOptions());
             $db = Zend_Db::factory($config->resources->db);
             //on test si la connection se fait
             //on charge notre fichier de configuration
          /*
          $db = Zend_Db::factory('Pdo_Mysql', array(
            'host'     => 'localhost',
            'username' => 'root',
            'password' => '1458xiol',
            'dbname'   => 'mesMots'
            ));
        */
             $db->getConnection();
             Zend_Db_Table::setDefaultAdapter($db);

J'obtiens le message suivant

"Adapter name must be specified in a string"

Si j'initialise ma base en activant les lignes suivantes

$db = Zend_Db::factory('Pdo_Mysql', array(
            'host'     => 'localhost',
            'username' => 'root',
            'password' => '*******l',
            'dbname'   => 'mesMots'
            ));

le message n'existe plus et tout fonctionne bien !
Un peu de mal à comprendre pourquoi

Voici le contenu partiel de mon  configuration.ini

[database]
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "********"
resources.db.params.dbname = "mesMots"
resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss"
resources.db.isDefaultTableAdapter = true

Voyez vous une raison à ce dysfonctionnement ?

merci d'avance

Dernière modification par Mr.MoOx (09-10-2009 09:59:31)

Hors ligne

 

#2 08-10-2009 16:05:04

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Je crois que avec _initDb tu surcharges une fonction existante, essaie en renommant _initDb par _initBdd (par exemple)


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#3 08-10-2009 16:10:28

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Hello,

J'avoue ne pas avoir beaucoup joué avec Zend_Application mais cela ne sert à rien de faire un _initDb si tu as déjà tout dans ton fichier de config et que tu ne veux faire de plus que l'_initDb par défaut.

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#4 08-10-2009 18:26:10

armalex
Nouveau membre
Lieu: 44100 Nantes
Date d'inscription: 07-10-2009
Messages: 5
Site web

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

-> to aelyta
J'avais essayé de renommer en _initDbDb  ma fonction. Rien à faire, il faut que je passe les paramètre en dur comme indiqué. Les fontions suivantes ne donnent pas le résultat escompté

$config = new Zend_Config($this->getOptions());
$db = Zend_Db::factory($config->resources->db);

-> mikaelkael
Euh ! Si j'initialise pas ma $bd  ici, rien ne fonctionne.  + Zend_Db_Table::setDefaultAdapter($db);
mais je suis d'accord avec toi, je ne devrais pas avoir celà. Je suis nouveau sur le framework, (je viens du monde JAVA)
la ligne "resources.db.isDefaultTableAdapter = true" devrait jouer son rôle pour définir la connexion par défaut !
Bon, pas d'idée sur la nature de ce message !

Hors ligne

 

#5 09-10-2009 09:22:18

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

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Si je me trompe pas, Zend_Db_Factory attend 2 paramètres.
Dans Zend_Application_Resource_Db je vois ça :

Code:

$this->_db = Zend_Db::factory($adapter, $this->getParams());

Dans mon application.ini j'ia ça et ça marche très bien

Code:

resources.db.adapter = pdo_mysql
resources.db.params.host = ...
resources.db.params.username = ...
resources.db.params.password = ...
resources.db.params.dbname = ...
resources.db.isDefaultAdapter = true

/!\ Par contre je n'ai pas de section [database] et je pense que c'est ça qui pose problème
Ces lignes doivent faire parti de la section principal (ou de la section chargé par Zend_Application)

Hors ligne

 

#6 09-10-2009 09:52:56

armalex
Nouveau membre
Lieu: 44100 Nantes
Date d'inscription: 07-10-2009
Messages: 5
Site web

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Voilà la solution ! merci Mr MoOx ...et les autres d'ailleurs pour les quelques minutes à lire mon problème
J'avais pris le fichier sur internet, bêtement (reste à voir l'utilité des sections du fichier ini)
Du coup, ne fait, je n'ai pas besoin de initdb dans mon bootstrap ! (->mikaelkael)
La connexion est automatique !
En dehors de celà , j'avance à grand pas sur l'utilisation du framework !
Je ne sais pas comment modifier pour le mettre résolu en revanche !

Hors ligne

 

#7 09-10-2009 09:59:19

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

Re: [Résolu] [Zend_Db][1.9] Adapter name must be specified in a string

Tu édites ton premier message en rajoutant [Résolu] dans le titre smile (pour cette fois je te le fais smile )

Pour les sections du ini, c'est pour tes différents environnements (prod, test, dev etc)

Dernière modification par Mr.MoOx (09-10-2009 10:00:16)

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