Documentation
La classe « data_object »
Présentation du concept
La classe “data_object” est une classe abstraite permettant de faciliter la création d’une classe associée à une table de la base données.
La classe ainsi créée a pour objectif d’exécuter les opérations de base sur une table en évitant d’avoir recours à une requête SQL.
Chaque enregistrement de la base de données est ainsi vu comme un objet avec notamment des méthodes d’ouverture, d’enregistrement ou d’affectation automatique de valeurs (provenant de formulaires par exemple).
Il est en général recommandé de créer une classe dédiée pour chaque table d’un module.
Vous pouvez ainsi commencer en créer une structure assez basique qui hérite de “data_object” :
1 2 3 4 5 6 7 8 9 10 11 |
include_once './include/classes/data_object.php'; class ma_classe extends data_object { function ma_classe() // constructeur { parent::data_object('ma_table', 'id'); // instanciation de data_object sur la table "ma_table" avec pour clé "id" } } |
Il est ensuite possible d’ajouter des propriétés et des méthodes spécifique à votre classe.
Méthodes utiles
Parmi les méthodes très utiles héritées de “data_object”, vous pourrez notamment utiliser :
- data_object::open($id1, $id2, … )
- data_object::save()
- data_object::delete()
- data_object::setvalues($values, $prefix)
- data_object::init_description()
Exemples d’utilisation
Création d’un enregistrement
1 2 3 4 5 6 7 8 |
$maClasse = new ma_classe(); // instanciation de mon objet $maClasse->fields['champ1'] = 'valeur du champ1' // affectation de valeurs aux champs $maClasse->fields['champ2'] = 'valeur du champ2' $intNouvelId = $maClasse->save(); // création de l'enregistrement dans la base de données |
Modification d’un enregistrement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$arrValeurs = array( 'prefix_champ1' => 'nouvelle valeur' 'prefix_champ2' => 'nouvelle valeur' ); // Création d'un tableau de valeurs $maClasse2 = ma_classe(); // instanciation de mon 2e objet $maClasse2->open($intNouvelId); // ouverture de l'enregistrement précédemment créé $maClasse->setvalues($arrValeurs, 'prefix_'); // modification des valeurs de l'objet à partir d'un tableau, on peut également se servir de $_POST ou $_GET $maClasse2->save(); // enregistrement de la modification dans la base de données |
Suppression d’un enregistrement
1 2 3 4 5 6 7 |
$maClasse3 = ma_classe(); // instanciation de mon 2e objet $maClasse3->open($intNouvelId); // ouverture de l'enregistrement précédemment créé $maClasse3->delete(); // suppression de l'enregistrement dans la base de données |
Retour en haut de la page