Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Jelix et Doctrine (ORM plus exactement)

Posted by madaweb_frm on 03/16/2010 15:46

Bonjour,

Pour intro, Doctrine est un ORM pour PHP Selon vous, est-ce qu'il sera facile de configurer Doctrine dans Jelix car si je ne me trompe, Jelix utilise DAO pour son modèle!

Jelix n'utilise pas encore d'ORM non? Il y a PDO mais c'est encore une lointaine couche du mapping relationnel objet

  [Opened] Re: Jelix et Doctrine (ORM plus exactement)

Reply #1 Posted by laurentj on 03/17/2010 11:43

Bonjour,

Jelix n'utilise pas encore d'ORM non?

bah si, jDao est un ORM. ORM = Object Relationnal Mapping. C'est bien ce que fait jDao.

Il y a PDO

PDO n'est pas un ORM, c'est juste une couche d'abstraction de base de donnée (on utilise les même fonctions pour travailler avec mysql, pgsql ou autre). ça n'a pas du tout de fonctions avancées de "mapping", et ce n'est absolument pas son objectif.

est-ce qu'il sera facile de configurer Doctrine dans Jelix

Possible. Je ne connais pas trop Doctrine, en particulier, si il est possible de mettre les fichiers de mapping en divers endroits, c'est à dire ici, dans les répertoires de modules respectifs... Où est ce que l'on doit tout mettre dans un même repertoire. faut étudier le truc.

Mis à part ça, jelix n'empêche absolument pas l'utilisation de bibliothèques tierces, que ce soit Doctrine, Pear ou autre. Il peut juste y avoir un problème d'intégration "élégante", c'est à dire, si on arrive à respecter ou non la philosophie jelix.

  [Opened] Re: Jelix et Doctrine (ORM plus exactement)

Reply #2 Posted by madaweb_frm on 03/18/2010 09:34

Ah bon, jDao c'était déjà un ORM! En effet, c'est comme Doctrine! En général, Doctrine est ajouté en tant que plugin. Et ben, faut que j'apprenne ce que c'est le plugin en Jelix!

  [Opened] Re: Jelix et Doctrine (ORM plus exactement)

Reply #3 Posted by foxmask on 03/26/2010 16:53

J'ai tenté le coup de faire fonctionner Doctrine avec Jelix et en suivant la doc de doctrine j'arrive à ca :

  • j'ai mis doctrine dans le sous dossier doctrine du dossier lib/ de jelix
  • dans le application.ini.php au bout du fichier on met :
 require_once(dirname(__FILE__) . '/../lib/doctrine/Doctrine.php');
 spl_autoload_register(array('Doctrine', 'autoload'));
 $manager = Doctrine_Manager::getInstance();
 spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));
 $manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
  • dans le module on créé un dossies models
  • dans le controller j'ai ensuite fait ceci :
    function index() {
        global $gJConfig;
        $rep = $this->getResponse('html');
        $db = jIniFile::read(JELIX_APP_CONFIG_PATH.$gJConfig->dbProfils);
        //connexion à la base 
        $conn = Doctrine_Manager::connection(
                 $db[$db['default']]['driver'].'://'.$db[$db['default']]['user'].
                 ':'.$db[$db['default']]['password'].'@'.$db[$db['default']]['host'].'/'.$db[$db['default']]['database']
                );
        //chargement des models 
        Doctrine_Core::loadModels(dirname(__FILE__).'/../models');
        //recuperation de tous les enregistrements
        $customer = Doctrine_Core::getTable('Customers')->findAll();
        $tpl = new jTpl();
        $tpl->assign('rs',$customer);
        $rep->body->assign('MAIN', $tpl->fetch('test'));
        return $rep;
    }

Evidemment on peut largement améliorer cela.

notamment Laurentj m'a soufflé l'idée de produire un jDoctrine::get('module~model'); qui se chargerait des Doctrine_core::*


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Jelix et Doctrine (ORM plus exactement)

Reply #4 Posted by foxmask on 03/29/2010 09:59

je suis arrivé à un résultat acceptable ; ya plus qu'à faire un patch :-)


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

 
Page
  1. Jelix et Doctrine (ORM plus exactement)