Table des matières

SmartMaker - Back (PHP)

La partie backoffice de smartmaker doit s'intégrer dans un module normal de dolibarr.

De ce fait lorsque vous déployez smartmaker dans votre module dolibarr vous aurez quelques nouveaux dossiers qui vont apparaître:

Ainsi qu'un fichier smartmaker-api-prepend.php qui est utilisé pour factoriser du code et éviter d'avoir des entêtes php trop verbeux.

Mapping dolibarr <-> application react

Les objets dolibarr ne peuvent pas être directement transposés en react nous avons donc développé un système de “mapping” qui permet de faire correspondre des objets dolibarr avec leur équivalent react.

Chaque classe dolibarr qui a besoin d'être mappée peut l'être via un ensemble de techniques fines dont vous trouverez le détail ci dessous.

Exemple pour l'objet dolibarr Societe (qui est un objet du coeur) vous trouverez une classe dmSociete livrée dans le projet smartAuth. Tout objet du coeur qui n'a pas encore de mapping fera l'objet d'une implémentation officielle dans ce projet, il faudrait pour celà nous indiquer (via une issue/ticket) sur le projet smartAuth qu'il manque un mapping…

Au niveau de votre module complémentaire, si vous avez un objet SmartInter (par exemple) vous pourrez mapper ses champs vers le front react en implémentant un fichier dmSmartInter.

Suivez le lien suivant pour plus de détails sur le moteur de mapping dolibarr - react

Fichier api.php

C'est dans ce fichier que vous aurez à implémenter les différents points d'entrée sur l'API dédiée à votre application.

Le routeur PHP

Ce routeur php comprends la grammaire suivante:

Grâce à ce routeur PHP il devient extrêmement facile de “suivre” les différentes actions possibles sur votre API !

Par exemple un GET /login appelle la fonction index de la classe AuthController et un POST /login appelle la fonction login de cette même classe …

Route::get('login',     AuthController::class, 'index');
Route::post('login',    AuthController::class, 'login');

Vous voulez implémenter un “logout” ? rien de plus simple: ajoutez une ligne dans api.php

Route::post('logout',   AuthController::class, 'logout', true);

Et implémentez la fonction logout dans votre classe AuthController

	/**
	 * @api {post} /logout Logout
	 * @apiDescription Logout and close session
	 * @apiName PostLogout
	 * @apiGroup Auth
	 *
	 */
	public function logout($payload)
	{

Note: cette fonction est naturellement déjà implémentée nativement dans SmartMaker