Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
Je crois que avec _initDb tu surcharges une fonction existante, essaie en renommant _initDb par _initBdd (par exemple)
Hors ligne
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.
@+
Hors ligne
-> 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
Si je me trompe pas, Zend_Db_Factory attend 2 paramètres.
Dans Zend_Application_Resource_Db je vois ça :
$this->_db = Zend_Db::factory($adapter, $this->getParams());
Dans mon application.ini j'ia ça et ça marche très bien
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
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
Tu édites ton premier message en rajoutant [Résolu] dans le titre (pour cette fois je te le fais
)
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
Pages: 1