8792 sujets

Développement web côté serveur, CMS

Bonjour,

Je développe une application web et je souhaiterais créer une architecture qui me permettrait entre autres d'avoir un seul et unique fichier qui décrirait ma base de données (MySQL) avec login/password d'accès, mais aussi avec les tables, les attributs, etc...
Tout ça dans le but d'éviter à avoir à modifier plein de fichiers le jour où je change la structure de la BD...

J'utilise PHP et MySQL.

Je me demandais donc s'il existait qqchose (peut-être basé sur du XML) pour faire ça...

merci d'avance smile
Salut,

Personnellement, j'utilise Propel pour faire ça. C'est un outil bien puissant et qui rend de gros services surtout dans le cas de grosses applications avec un nombre minimum de tables.

Comment ça se passe:
- Tu décris toute la structure de ta base de données dans un fichier XML, avec une syntaxe à respecter. Ce fichier XML peut accepter plein d'attributs, de paramètres... bref, tout ce qu'il faut pour décrire précisément les données.
- Tu lances un script générateur de classes, qui, à partir du schéma XML, va construire une classe PHP par table, avec toute une série très complète de fonctions. La génération va également fournir un fichier SQL à éxécuter directement dans MySQL par exemple.
- Ensuite, tu as juste à faire appel à la "librairie runtime" de propel depuis tes pages, et tu as accès à toutes tes classes issues des tables...

Quand tu veux modifier le schéma de ta base, tu as juste à modifier le XML et re-générer les classes.
Propel fait dans l'abstration de BDD, donc ça marche avec la plupart des SGBDR. C'est seulement à partir de PHP5. Il y a quelques dépendances, dont l'utilisation de Phing... mais tu en sauras plus en allant directement sur leur site.

Un très bon outil que je conseille Smiley smile

Pour en savoir plus : http://propel.phpdb.org/trac/

@+