11

Re : Hoa_Database / getInstance / configuration centralisée

Bah j'ai les notifications moi, donc je ne peux pas trouver le problème … De toute façon, Hoa site v2 est en cours (ho !) wink.

Sinon oui, dans l'idée, c'est ça qu'il faut faire. Même sans passer par un attribut hein. Tu peux surcharger le constructeur plutôt que getInstance, tu seras encore plus abstrait comme ça.

Et enfin, c'est un problème que les sysadmins doivent gérer eux-mêmes. Si la base de données est merdique, c'est leur faute. Ce n'est pas à toi de corriger. Il faut t'imposer wink (à moins que ce soit pour un outil, mais dans ce cas, tu installes toi-même la base …).
Je trouve que faire cette opération à chaque ouverture de connexion est un peu lourd … Non ?

« 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. »

12

Re : Hoa_Database / getInstance / configuration centralisée

voui, je confirme

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

13

Re : Hoa_Database / getInstance / configuration centralisée

C'est vrai qu'a la réflexion, c'est mieux d'essayer de régler ça en amont...
Donc je laisse tomber la classe "extendue"...
Mais je suis content je comprend de mieux en mieux les principes poo smile
D'ailleurs ce soir, je vous soumettrais une classe perso Hoathis_Pagination afin d'avoir vos critiques!
(compatibilité philosophie de codage de Hoa, philosophie OOP, etc...)

14

Re : Hoa_Database / getInstance / configuration centralisée

Avec impatience ^^

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

15

Re : Hoa_Database / getInstance / configuration centralisée

Moi aussi wink.

« 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. »

16

Re : Hoa_Database / getInstance / configuration centralisée

La suite par ici wink
http://hoa-project.net/Forum/post/1919/#p1919

17

Re : Hoa_Database / getInstance / configuration centralisée

Bon après réflexion,
En fait le serveur de prod qui accueillera l'application ne permettra pas de réglages de ce types...
Du coup j'ai créer une classe étendue de Hoa_Database_Dal

Nommée Hoathis_Databaseutf8.
J'ai simplement redéfinit les méthodes statiques getInstance() et getLastInstance(),
afin d'y ajouter la requête utf8, si celle-ci n'a pas déjà été éxécutée.
Le code n'est pas encore commenté, il fonctionne tel quel.

Question: Pour les conventions de nommage, est-ce que le nom est bien choisis?
Hoathis_Database_Utf8 m'aurait bien plus, mais comment gérer ça au niveau de l'import et des modules?

Peut-on créer dans le dossier module un dossier Database (donc qui existe déjà dans Library) avec à l'intérieur une dossier Utf8 qui sera la "sous-lib" étendue de Hoa_Database

Bref la méthode est-elle à peu près bonne pour le tout?

class Hoathis_Databaseutf8 extends Hoa_Database_Dal {
    
    private static $_setNamesUtf8 = false;

    public static function getInstance ( $id,
                                         $dalName  = null, $dsn      = null,
                                         $username = null, $password = null,
                                         Array $driverOption = array() ) {
        
        
        $instance = parent::getInstance($id, $dalName, $dsn, $username, $password, $driverOption);
        
        if(!self::$_setNamesUtf8) {
            
            $instance->query("SET NAMES 'utf8'");
            
            self::$_setNamesUtf8 = true;
        }
        
        return $instance;
    }
    
    public static function getLastInstance ( ) {
        
        $instance = parent::getLastInstance();

        if(!self::$_setNamesUtf8) {
            
            $instance->query("SET NAMES 'utf8'");
            
            self::$_setNamesUtf8 = true;
        }
        
        return $instance;
    }
    
}

18

Re : Hoa_Database / getInstance / configuration centralisée

Ça me semble correct. Sinon, au niveau du nom, oui tu devrais plutôt l'appeler Hoathis_Database_Utf8. Donc tu aurais le fichier Module/Database/Utf8.php qui serait appelé comme ceci : importModule('Database.Utf8');. C'est la même logique que pour tous les paquetages de Hoa 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. »

19

Re : Hoa_Database / getInstance / configuration centralisée

Ok merci pour la correction de nommage wink
Je finalise ça au niveau de la présentation smile

20

Re : Hoa_Database / getInstance / configuration centralisée

Ça roule wink.

« 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. »