Categories > TinyButStrong general (FR) >

Ajout d'une source de données pour un objet simple

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: orgoz
Date: 2005-09-06
Time: 21:58

Ajout d'une source de données pour un objet simple

Bonsoir,

je travaille avec des objets simples contenant différentes varaibles. Afin de pouvoir utiliser ces objets avec TBS sans pour autant les transformer en tableau, j'ai pensé créer un type de données personnalisé. Seulement j'ai du mal à cerner la manière de les faire.

Voici par exemple un objet Logiciel simple.
class Logiciel {
   var $id;
   var $nom;
   var $version;
   var $description;
   var $features;
   var $screenshots;
   var $date_ajout;
   var $note;
   var $categorie;
   var $id_membre_ajout;
   var $licence;
//avec mon constructeur qui se charge de remplir toutes ces variables

Avec ceci je ne vois pas comment créer les fonctions tbsdb_Logiciel_open, tbsdb_Logiciel_fetch et tbsdb_Logiciel_close.

Merci de vos éclaicissements
By: Skrol29
Date: 2005-09-07
Time: 00:59

Re: Ajout d'une source de données pour un objet simple

Ben si tu peux me dire comment tu lis les différents champs sur différents enregistrements, je pourrais te dire comment coder les fonctions.

Si j'ai bien compris, 1 instance de ta classe Logiciel représente 1 enregistrement. Mais comment procède-tu pour lire diffrents enregistrements ? D'où viennent tes données ?
By: orgoz
Date: 2005-09-07
Time: 10:24

Re: Ajout d'une source de données pour un objet simple

Avec ton message je viens de me rendre compte que je dois mal m'y prendre dans la programmation de mes classes !

En fait, je pensais accéder directement aux variables d'instances mais normalement il faut une méthode  qui me les retourne, c'est bien ca ? Et du coup, plutot que de faire une méthode pour chaque variables, les renvoyer toutes d'un coup dans un tableau est plus rapide.

C'est donc plus pratique de passer par un tableau que de continuer sur mon idée d'ajouter une source de données ?

merci de ton aide
By: Skrol29
Date: 2005-09-07
Time: 10:51

Re: Ajout d'une source de données pour un objet simple

> En fait, je pensais accéder directement aux variables d'instances
> mais normalement il faut une méthode  qui me les retourne,
> c'est bien ca ?

En fait non. Ou je comprends pas bien ta phrase.

Prennons un exemple avec des données. J'ai
  Logiciel 1 : id=1, nom=winzip, version=8.0
  Logiciel 2 : id=2, nom=winrar, version=3.0
  Logiciel 3 : id=3, nom=7zip,   version=1.0

Si ces données son stockées dans ta classe "Logiciel", on pourrais avoir:
  $x = new Logiciel;
après remplissage des variables, je peux accéder aux propriétés (attributs) qui ont les valeurs suivantes :
  $x->id = 1
  $x->nom = 'winzip'
  $x->version = '8.0'
Bon ok, mais ça me donne accès à l'enregsitrement n° 1. Mainteant comment je lis l'enreg n° 2 ?
Plusieurs soluces : Soit je code un méthode PasseALEnregSuivant() qui me permet de lire les données de l'enreg n° 2 dans la même instance ($x) sans en créer de nouvelle.
Soit je créer un deuxième instance:
  $y->id = 2
  $y->nom = 'winrar'
  $y->version = '3.0'
Avec cette deuxième solution, je dois fournir toutes les instances $x,$y,... d'une manière ou d'une autre.

>C'est donc plus pratique de passer par un tableau
> que de continuer sur mon idée d'ajouter une source de données ?

C'est ce qui a de plus courant et de plus simple pour emmagasiner des données. Mais beaucoup de fonctions de lecture de données (MySQL, Oracles,...) intègrent une option pour retourner un enregistrement sous forme d'un objet au lieu d'un tableau. Cela a un intérêt uniquement si tu comptes avoir une utilisation "objet" de ces enreg, sinon un tableau est beaucoup plus simple et plus léger.
By: orgoz
Date: 2005-09-07
Time: 13:10

Re: Ajout d'une source de données pour un objet simple

ok merci pour tes conseils. Je vais donc continuer de passer par des tableaux. Ca me facilitera la tâche :) et comme je fais pas non plus un site à but lucratif ou commercial, c'est pas trop grave s'il n'est pas super propre, on apprend comme ça ;)

encore merci