Exemple de classe métier typique
Imprimer

Classe métier

Présentation

Le code qui suit représente l'implémentation d'un classe métier typique au sein de Mediboard. Nous nommerons cette classe d'exemple CObjetMetier.

Code commenté

En-tête

<?php 
/**
 * Classe CObjetMetier. 
 * @abstract Exemple de classe d'objet metier
 */
class CObjetMetier extends CMbObject {

Propriétés

Clef primaire

<?php 
  var $objet_metier_id = null;

Champs de la base de données

On va indiquer les différents champs que l'on va utiliser dans la base de données

<?php 
  var $date        = null; // La date de création
  var $description = null; // Une description sous format texte
  var $user_id     = null; // La référence de l'utilisateur qui l'a créé

Références externes

Ces propriétés représentent les références externes uniques (notre objet métier a un id vers cette référence : on a un seul objet) ou multiples (l'objet de référence a un id vers notre objet métier : on a une liste d'objets)

<?php 
  var $_ref_user = null;

Constructeur

Le constructeur est hérité de CMbObject pour chacune des classes, le module de la classe y est chargé et les noms de la table et de la clé primaire sont rensignés dans la fonction getSpec de cette manière :

<?php 
function getSpec() {
  $spec = parent::getSpec();
  $spec->table = 'table_name';
  $spec->key   = 'table_key';
  return $spec;
}

Spécification des champs

La description des propriétés de notre objet est un tableau construit en utilisant les Spécifications de propriétés.

<?php 
  function getProps() {
  	$specs = parent::getProps();
        $specs["date"] = "notNull dateTime" ;
        $specs["description"] = "str maxLenght|40" ;
        $specs["user_id"]     = "notNull ref class|CMediusers" ;
        return $specs ;
  }

Remplissage des champs dérivés

On rempli ici le champ dérivé _view, champ générique de visualisation de l'objet. Le remplissage des champs dérivés par les champs de base de données se fait après chargement de l'objet dans la fonction updateFormFields(). Pour le processus inverse (remplissage des champs de base de données à partir des champs dérivés), on utilise la fonction updateDBFields() (apellée avant de sauvegarder l'objet).

<?php 
  function updateFormFields() {
    parent::updateFormFields();
    $this->_view = "Object créé le".mbDateTime($this->date, "%d/%m/%Y");
  }

Chargement des références directes externes

On charge l'utilisateur qui a créé notre objet.

<?php 
  function loadRefsFwd() {
    $this->_ref_user = new CMediusers();
    $this->_ref_user->load($this->user_id);
  }

Fin

Et c'est fini !

<?php 
}


Dernièrement modifié par Flavien3660 points  , Basé sur le travail de Fabien2047 points  , sully593 points  , mytto14492 points  et rhum15509 points  .
Modifiée dernièrement le mardi 26 de janvier, 2010 11h39m56.

Sponsors privilégiés

Mediboard project