Propel : un hibernate like pour PHP…

P

Tout programmeur java connait bien hibernate ou ses equivalents et ne saurait plus maintennant s’en passer. Finalement, la création des requettes SQL est tellement génératrice de bugs dans le cycle de vie d’un projet, que l’utilisation d’une solution de mapping objet relationnelle (ORM) comme solution de persistence de vos données, doit devenir naturelle. C’est un énorme gain en programmation, en phase de recette, et assure que les principalles attaques possible sont déja corrigées dans le framework. Un petit zoom d’initiation à propel php.

Objéctif de ce tutorial :
N’avoir plus de code à ecrire pour la base de donnée autre que par exemple :

monChat = new Cat();
monChat->setName( « grosMatout » );
monChat->save();

Voilà… le tout sans evidemment passé une journée à configurer le bouzin :-)

1) Installation de propel sous windows :

– installez php5 et pear. Pour rappel, il suffit de prendre un executable de php5 sur http://www.php.net et de lancer sous dos la commande go-pear.bat .

Ensuite dans une commande MSDOS lancez :
Installation de phing (Phing est une sorte de ANT en php).
1) -> $> pear channel-discover pear.phing.info
2) -> $> pear config-set preferred_state beta
3) -> $> pear install phing/phing

Installation de Créole (Créole est une couche d’abstraction entre base de donnée et application en php5).
1) -> $> pear install http://creole.phpdb.org/pear/creole-current.tgz
2) -> $> pear install http://creole.phpdb.org/pear/jargon-current.tgz

Installation de Propel (Nous avons besoin du générateur en ligne de commande afin de construire le schéma de base).
1) -> $> pear config-set preferred_state beta
2) -> $> pear channel-discover pear.phpdb.org
3) -> $> pear install phpdb/propel_generator
4) -> $> pear install phpdb/propel_runtime (option non obligatoire pour la génération du schéma).

Voilà, si vous tapez la commande phing, vous devriez avoir le message :
« F:devpropelgeneratorprojects>phing
Buildfile: build.xml does not exist! »

Pour travailler avec propel, vous devez respecter son arboréscence de répertoires, ce qui est bien plus simple si vous recuperez le paquage depuis le site de propel : « http://propel.phpdb.org/trac/wiki/Users/Download »

2) Création du model objet :

Imaginons que nous avons deux objets : Un chien, ayant un nom, et des jouets ayant aussi des noms et un attribut pouet, qui dira si oui ou non, ce jouet est bruyant. Un chien peut avoir N jouet, mais chaque jouet n’appartient qu’a un chien, d’ou une relation chien/jouet 1/N. le fichier schema.xml sera le suivant :

Que dire de plus ???? simple….

2) Génération du schéma SQL et des objets PHP5 :

Mon installation de propel est sur : « F:devpropel »
Je vais donc en MS dos aller sur : « F:devpropelgeneratorprojects> »

Puis il suffit de taper la commande : « F:devpropelgeneratorprojects>propel-gen shop » ou « shop » est le nom du projet.

2) Utilisation dans un exemple :

Remarque : le mapping ci-dessus n’est qu’un exemple, il serait plus judicieux de le revoir pour eviter la double commande :
$chien -> save();
$jouet -> save();

Voilà…

A propos de l'auteur

Eric Wallet

2 commentaires

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Commentaires récents

Étiquettes