Sujet : Récupération d'une connexion database

Hey,

Depuis peu (maj ou pas ?) je n'arrive plus a récupérer correctement un connexion d'une base de données.

exemple:

Dans le json de configuration database:

        "connection.list.default.dal"     : "Pdo",
        "connection.list.default.dsn"     : "mysql:host=localhost;dbname=ma_base",
        "connection.list.default.username": "root",
        "connection.list.default.password": "",
        "connection.list.default.options" : true,
        "connection.autoload"             : null // or connection ID, e.g. "default"

Dans mon controleur

        $this->_db = Hoa_Database_Dal::getInstance(
            $this->_parameters->getParameter($this, 'database.connexion')
        );

j'obtient l'erreur suivante:

Catchable fatal error: Argument 4 passed to Hoa_Database_Dal_AbstractLayer_Pdo::__construct() must be an array, boolean given, called in D:\Serveur\www\lifeinthecloud.fr\Framework\Library\Database\Dal\Dal.php on line 200 and defined in D:\Serveur\www\lifeinthecloud.fr\Framework\Library\Database\Dal\AbstractLayer\Pdo\Pdo.php on line 92

2 questions

1- Il ne prend pas la valeur par default de $driverOption, pourquoi ?

2- j'ai une méthode getParameter dans ma classe car j'implémente avec Hoa_Framework_Parameterizable_Readable
pourquoi suis je obligé de mettre le $this pour récupérer un parametre alors que dans les attributs de ma méthode je ne le demande pas:

    public function getParameter ( $key ) {

        return $this->_parameters->getParameter($this, $key);
    }

Merci d'avance.

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

Re : Récupération d'une connexion database

Hey,

Pour la connection tu as pas essayé :

 $this->_db = Hoa_Database_Dal::getInstance(
            $this->_parameters->getParameter($this, 'database.connection')
        );

database.connection et non database.connexion ...

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

3

Re : Récupération d'une connexion database

Hey,


Peu importe, dans mon fichier de conf de mon module j'ai x au lieu de t.

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

4

Re : Récupération d'une connexion database

Hey,

Bon, j'ai trouvé 1 problème sur les deux.

        "connection.list.default.dal"           : "Pdo",
        "connection.list.default.dsn"          : "mysql:host=localhost;dbname=ma_base",
        "connection.list.default.username": "root",
        "connection.list.default.password": "",
        "connection.list.default.options"    : true, // ici faut mettre par default {} et non true
        "connection.autoload"                   : null // or connection ID, e.g. "default"

Petite modification à faire sur le trunk....

voila ^^

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

5

Re : Récupération d'une connexion database

Hey smile,

Désolé pour mon retard, j'ai énormément de travail en ce moment. Fin de cette période : dans deux semaines.

Euh, donc oui peut-être qu'il faut mettre un tableau au lieu de true. Par contre je n'ai pas compris ton autre problème smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

6

Re : Récupération d'une connexion database

Donc je réexplique...

j'ai une classe module Hoathis...
elle implémente Hoa_Framework_Parameterizable

donc ajout obligatoire de 5 méthodes pour l'implémentation

public function setParameters ( Array $in )
public function getParameters ( )
public function setParameter ( $key, $value )
public function getParameter ( $key )
public function getFormattedParameter ( $key )

quand je souhaite utiliser getParameter je suis obligé de faire

$this->_parameters->getParameter($this, 'database.article')

car il ne veut pas utiliser ma méthode getParameter ( $key ) sans le $this

Pourquoi ?

Merci ^^

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

7

Re : Récupération d'une connexion database

arf

$this->getParameter($this, 'database.article')

et non

$this->_parameters->getParameter($this, 'database.article')

Suis c.., la tête dans le guidon !

Merci tout de même ^^

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

8

Re : Récupération d'une connexion database

L'interface présentée pour les paramètres doit être simple. Mais il y a une identification de qui peut utilisé quel paramètre. Tu as du remarquer qu'il faut toujours passer l'objet quand on construit des paramètres (quand on instancie l'objet). La raison est qu'on indique qui en est l'auteur. Ensuite, pour chaque utilisation, on doit préciser qui veut l'utiliser, et on fait valider l'utilisation auprès de l'auteur (soit c'est lui même, soit une classe avec qui il a partagé ses paramètres).

Tu comprends mieux ou tu veux un exemple smile ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

9

Re : Récupération d'une connexion database

Tout est bon, merci ^^

Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !

10

Re : Récupération d'une connexion database

Ok smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »