Object-Relational Mapping

De OviWiki
Aller à : navigation, rechercher

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]

Le chemin complet de la fonctionnalité
LibOrm
Documentation du parent
Pas de parent
Module
LibOrm
version du module
0.6.3


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 { }