Object-Relational Mapping : Différence entre versions
| Ligne 9 : | Ligne 9 : | ||
=== Exemple === | === Exemple === | ||
| − | Nous travaillons sur un module d'Ovidentia qui requiert la librairie LibOrm. Pour plus d'explications sur la méthode | + | Nous travaillons sur un module d'Ovidentia qui requiert la librairie LibOrm. Pour plus d'explications sur la méthode d'intégration d'une librairie dans un module : [[Fichiers spécifiques des modules]] |
Définition de la structure des adresses : | Définition de la structure des adresses : | ||
Version du 12 juin 2009 à 09:00
La librairie LibOrm (Object-Relational Mapping) est une bibliothèque de correspondance entre la base de données et des objets PHP. Elle facilite la définition des tables de données et les requêtes SQL.
Le module LibOrm est disponible sur CVS : [1]
|
getDescription
Méthode commune à toutes les librairies pour obtenir la description de l'objet partagé.
$instance = bab_functionality::get('LibOrm');
$description = $instance->getDescription();
--> Cette page ne recense pas toutes les possibilités de la librairie. Elle donne un aperçu des fonctions permettant de débuter dans l'utilisation de la librairie.
Exemple
Nous travaillons sur un module d'Ovidentia qui requiert la librairie LibOrm. Pour plus d'explications sur la méthode d'intégration d'une librairie dans un module : Fichiers spécifiques des modules
Définition de la structure des adresses :
class monmodule_AddressSet extends ORM_Set { function __construct() { parent::__construct();
$this->setPrimaryKey('id');
$this->addFields( ORM_TextField('street')->setDescription('Street'), ORM_StringField('zipcode', 10)->setDescription('Zip code'), ORM_StringField('city', 60)->setDescription('City') );
$this->hasOne('country', 'abcd_Country'); } }
class abcd_Address extends ORM_Record { }
Définition de la structure des contacts :
class abcd_ContactSet extends ORM_Set { function __construct() { parent::__construct();
$this->setPrimaryKey('id');
$this->addFields( ORM_StringField('firstname', 80)->setDescription('First name'), ORM_StringField('lastname', 80)->setDescription('Last name'), ORM_StringField('function', 50)->setDescription('Function'), ORM_StringField('post', 15)->setDescription('Post'), ORM_StringField('office', 15)->setDescription('Office'), ORM_StringField('phone', 30)->setDescription('Phone'), ORM_StringField('fax', 30)->setDescription('Fax'), ORM_StringField('mobile', 30)->setDescription('Mobile phone'), ORM_BoolField('shareMobile')->setDescription('Allow mobile phone number sharing'), ORM_StringField('email', 255)->setDescription('Email') );
$this->hasOne('address', 'abcd_AddressSet'); $this->hasOne('employer', 'abcd_ClientSet'); } }
class abcd_Contact extends ORM_Record { }