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 Flavien
, Basé sur le travail de
Fabien
,
sully
,
mytto
et
rhum1
.
Modifiée dernièrement le mardi 26 de janvier, 2010 11h39m56.
