Object-Relational Mapping : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
Ligne 1 : Ligne 1 :
La librairie LibOrm (Object-Relational Mapping) est une bibiliothèque de correspondance entre la base de données et des objets PHP.
+
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 JQuery est disponible sur CVS : [http://213.215.40.194/cgi-bin/cvsweb.cgi/libraries/LibOrm/ libraries/LibOrm]
+
Le module LibOrm est disponible sur CVS : [http://213.215.40.194/cgi-bin/cvsweb.cgi/libraries/LibOrm/libraries/LibOrm]
  
 
{{Fonctionnalité|path=LibOrm|addon=LibOrm|version=0.6.3}}
 
{{Fonctionnalité|path=LibOrm|addon=LibOrm|version=0.6.3}}
 +
 +
 +
--> 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é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 { }

Version du 12 juin 2009 à 08:53

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