Interfaces Exterieur vers Dolibarr: Difference between revisions

m
Line 10: Line 10:


== Utilisation des classes PHP ==
== Utilisation des classes PHP ==
Il est possible d'utiliser les objets métiers de dolibarr (Les fichiers xxx.class.php).
Il est possible d'utiliser les objets métiers de Dolibarr (Les fichiers xxx.class.php).
Chacun de ces fichiers offre un classe munie de methodes pour:
Chacun de ces fichiers offre un classe munie de méthodes pour:
* la récupération d'une entité (la méthode fetch)
* la récupération d'une entité (la méthode fetch)
* l'insertion en base d'une entité (la méthode create ou insert)
* l'insertion en base d'une entité (la méthode create ou insert)
Line 19: Line 19:
Cette technique est préférable à la précédente.
Cette technique est préférable à la précédente.


'''Avantages:''' Elle offre l'avantage de passer à travers les couches de validations métiers des données. Le code d'interface ne doit normallement pas etre réécrit en cas de montée de version de Dolibarr.
'''Avantages:''' Elle offre l'avantage de passer à travers les couches de validations métiers des données. Le code d'interface ne doit normallement pas être réécrit en cas de montée de version de Dolibarr.


'''Inconvénients:''' Elle n'est exploitable qu'en langage PHP.
'''Inconvénients:''' Elle n'est exploitable qu'en langage PHP.
Voici un exemple pour la création d'un tiers (société client par exemple):
<pre>
include_once('/pathofdolibarrhtdocs/societe.class.php');
$mycompany = new Societe($db);
$mycompany->nom='Big Brother';
$mycompany->client=1;
$mycompany->create($user);
</pre>
Rem: Si on est dans le cas d'un script externe à Dolibarr, il est nécessaire de faire au début
<pre>include('master.inc.php');</pre>
pour que les objets $db, $lang et $user soient créés.
Si on veut que les actions (creation, mise a jour), soit associées dans le suivi à un utilisateur particulier, il est nécessaire de faire avant
<pre>
$user->fetch('loginuser');
</pre>
Ainsi, l'objet user est initialisé avec les infos de l'utilisateur 'loginuser'.