IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

[Zend_Db] Comment aborder la réplication ?


Sujet :

Zend_Db PHP

  1. #1
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut [Zend_Db] Comment aborder la réplication ?
    Bonjour,

    je me demande comment, en respectant une logique ORM :
    ex :

    1- find
    2- modification des données
    3- save


    utiliser plusieurs serveur en rplication, mais forcer l'ecriture sur un seul.

    il y aurait bien la possibilitée d'utiliser la methode setTable :
    http://framework.zend.com/manual/en/...table.row.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $bugs = new Bugs();
    $bugs->setDefaultAdapter($dbSlave);
    $rowSet = $bugs->find('foo');
    $row = array_pop($rowSet);
     
    $row->bug_status = 'FIXED';
     
    $bugsMaster  = new Bugs();
    $bugsMaster ->setDefaultAdapter($dbMaster);
    $row->setTable($bugsMaster);
     
    $row->save();

    mais, je trouve cette methode assez lourde.

    avez vous d'autres idées?

  2. #2
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    une autre solution consisterait a etendre les methodes _insert, _update, ...

    cf :
    http://framework.zend.com/manual/en/...table.row.html
    Example 10.121. Example of custom logic in a Row class

    The custom logic may not apply in all cases of operations on the respective Table. You can provide custom logic on demand by implementing it in a Row class and creating an instance of the Table class with that custom Row class specified. Otherwise, the Table uses the default Row class.

    You need data operations on this table to record the operation to a Zend_Log object, but only if the application configuration has enabled this behavior.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    class MyLoggingRow extends Zend_Db_Table_Row_Abstract
    {
        protected function _insert()
        {
            $log = Zend_Registry::get('database_log');
            $log->info(Zend_Debug::dump($this->_data, "INSERT: $this->_tableClass", false));
        }
    }
    // $loggingEnabled is an example property that depends
    // on your application configuration
    if ($loggingEnabled) {
        $bugs = new Bugs(array('rowClass' => 'MyLoggingRow'));
    } else {
        $bugs = new Bugs();
    }
    en reprenant leur exemple, pour du insert / update / delete => forcer l'adapteateur sur le master, pour le select => forcer sur les slaves.

    reste le pb des proc. sto sur lequel je ne me suis pas encore penché.

Discussions similaires

  1. [Zend_Db] Comment executer cette requete?
    Par toumai dans le forum Zend_Db
    Réponses: 2
    Dernier message: 24/03/2008, 12h55
  2. Comment aborder le probleme ?
    Par Slumpy dans le forum VB.NET
    Réponses: 9
    Dernier message: 31/05/2007, 08h36
  3. Comment aborder les collisions dans mon cas?
    Par MonsieurHelmut dans le forum Physique
    Réponses: 4
    Dernier message: 18/02/2007, 16h56
  4. comment aborder un projet d'un point de vue dynamique ?
    Par link256 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/06/2006, 13h42
  5. Réponses: 2
    Dernier message: 26/04/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo