Difference between revisions of "Objets métiers"
Line 1: | Line 1: | ||
{{TemplateDocDev}} | {{TemplateDocDev}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Objets métiers = | = Objets métiers = | ||
− | |||
Tous les objets métiers sont définis par une classe PHP qui hérite de la classe CommonObject (définie dans le fichier commonobject.class.php). | Tous les objets métiers sont définis par une classe PHP qui hérite de la classe CommonObject (définie dans le fichier commonobject.class.php). | ||
+ | Chaque objet métiers possède les 4 méthodes CRUD: | ||
+ | * Créer: create() | ||
+ | * Lire: fetch() | ||
+ | * Modifier: update() | ||
+ | * Supprimer: delete() | ||
= Objets métiers liés = | = Objets métiers liés = |
Revision as of 15:50, 3 September 2010
Objets métiers
Tous les objets métiers sont définis par une classe PHP qui hérite de la classe CommonObject (définie dans le fichier commonobject.class.php). Chaque objet métiers possède les 4 méthodes CRUD:
- Créer: create()
- Lire: fetch()
- Modifier: update()
- Supprimer: delete()
Objets métiers liés
Certains objets métiers sont liés les uns aux autres. Ceci est fait dans Dolibarr via la Table llx_element_element. Mais vousn'avez pas à lire cette table pour récupérer les objets liés à un autre. voici la portion de code qui montre comment faire cela:
// This load the array linked_object with objects that link to this one
$object->load_object_linked($object->id, $object->element);
// To load array linked_object with objects that are linked by this one
$object->load_object_linked($object->id, $object->element);
// Then choose id with objects type you need
$org_order_array = $object->linked_object["commande"];
// Now use them
$thelinkedobjectid = $org_order_array[0];
// new order instance
$thelinkedobject = new Commande($object->db);
// load the object
$thelinkedobject->fetch($thelinkedobjectid);
Exemples
Exemple pour la création d'un tiers
Voici un exemple pour la création d'un tiers (société client par exemple):
Si on est dans le cas d'un script nouveau ou externe à Dolibarr, il est nécessaire de faire au début de son code, avant toute chose
include('/pathofdolibarrhtdocs/master.inc.php');
pour que l'environnement Dolibarr (objets $conf, $db, $lang et $user) soit créé. Si on veut que les actions (creation, mise à jour), soit associées dans le suivi à un utilisateur particulier, il est nécessaire de faire après l'include du master.inc.php
$user->fetch(0,'loginuser');
Ensuite, on peut manipuler réaliser nos actions métiers.
// On declare la classe que l'on va manipuler
include_once('/pathofdolibarrhtdocs/societe.class.php');
// On cree une instance de l'objet à manipuler
$mycompany = new Societe($db);
// On renseigne ces caractéristiques
$mycompany->nom='Big Brother';
$mycompany->client=1;
// Si on veut que l'action de création soit associé a un utilisateur 'loginuser' particulier,
// il faut decommenter cette ligne pour charger les caractéristiques de cet utilisateur.
// Si on laisse commenter, Dolibarr mettra null dans les champs du user de création ou mise a jour.
// $user->fetch('loginuser');
// On invoque la creation
$id=$mycompany->create($user);
// Pour charger l'objet
$mycompany->fetch($id);
// Pour mettre a jour
$mycompany->update($user);
Autres exemples
Vous trouverez d'autres exemples de manipulation d'objet Dolibarr (Création, Lecture, Modification, Suppression) dans le répertoire dev/samples du snapshot CVS de Dolibarr.