flosy.info | Développement Web, Open source …

Archive for mars 2011

Pour un projet je souhaite pouvoir me connecter à 2 bases de données différentes. Voyons comment faire cela avec Doctrine.

Configuration des bases de données

Nous définissons une connexion pour chacune des bases dans le fichier /config/databases.yml.

all:
  main:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=base_main'
      username: user
      password: password

  subsidiary:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=base_subsidiary'
      username: user
      password: password

Définition du modèle

Nous créons ensuite notre schéma en précisant pour chaque classe du modèle la connexion à utiliser. Voici un exemple de schéma :

Utilisateur:
  connection: main
  columns:
    id:         { type: integer, primary: true, autoincrement: true }
    nom:        { type: string(255) }
    
Groupe:
  connection: subsidiary
  columns:
    id:         { type: integer, primary: true, autoincrement: true }
    nom:        { type: string(255) }

La commande de création du modèle va ajouter les tables dans leur base respective.

$ symfony doctrine:build --all

Vous noterez dans les classes de base du modèle la référence à la connexion.

1
2
3
< ?php
  // Connection Component Binding
  Doctrine_Manager::getInstance()->bindComponent('Groupe', 'subsidiary');

À partir de maintenant les données seront enregistrées dans les 2 bases de données.

Related Posts:

·

Récupération de LibreOffice

LibreOffice n’étant pas encore disponible sur la Fedora, il suffit de se rendre sur le site du projet et de télécharger les RPMs
http://www.libreoffice.org/download/.
Il y a 3 archives à récupérer :

  • LibO_3.3.1_Linux_x86_install-rpm_en-US.tar.gz
  • LibO_3.3.1_Linux_x86_langpack-rpm_fr.tar.gz
  • LibO_3.3.1_Linux_x86_helppack-rpm_fr.tar.gz

Installation

Après avoir décompressé les archives, placez-vous dans le dossier qui contient les RPMs.
La commande indiquée dans le fichier README pose un problème de signature dans mon cas :

# yum install *.rpm
...
Le paquet libobasis3.3-ooolinguistic-3.3.1-8.i586.rpm n'est pas signé

J’ai donc désactivé le contrôle :

# yum --nogpgcheck install *.rpm

Les applications devraient être présentes dans le menu « Applications/Bureautique » de KDE mais dans mon cas cela n’a pas fonctionné.
Après quelques recherches les applications se trouvent dans /opt/libreoffice/program/.

Il nous reste à installer les packages de traduction. Il suffit de se placer dans leur dossier RPMS et relancer la commande :

# yum --nogpgcheck install *.rpm

Et voilà vous avez maintenant un LibreOffice opérationnel en français.

Related Posts:

·

Mar/11

10

Lancement du site Symfony 2

Depuis quelques jours le nouveau site dédié à Symfony 2 est en ligne. Il comporte déjà une documentation très complète sur le sujet.
Pour ceux qui l’aurait raté voici la nouvelle url où trouver le projet http://symfony.com.

Related Posts:

Je souhaitais utiliser la méthode copy de Doctrine_Record pour dupliquer un objet et les objets auxquels il est associé.
Pour cela il suffit de placer le paramètre $deep de la méthode copy à true, du moins c’est ce que je pensais.
Pour que cela fonctionne il faut charger au préalable les relations qui nous intéressent. (C’est très bien expliqué dans cet article http://david-gueye.fr/2010/02/02/dupliquer-ou-cloner-un-objet-doctrine-record/).

Voici un petit exemple :

  $groupe = Doctrine_Core::getTable("Groupe")->find(1);
  $groupe->loadReference("Utilisateurs");
  $copieGroupe = $groupe->copy(true);
  $copieGroupe->save();

Related Posts:

Theme Design by devolux.nh2.me