[objet] Exemple avec la lecture d'un point

Problèmes, bugs et difficultés rencontrés sur le site.
Avatar du membre
leosw
Messages : 523
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

[objet] Exemple avec la lecture d'un point

Message par leosw »

Salut à tous,

Alors j'ai fait rapidement un exemple de comment que j'écrirais un objet.

Le code
Un exemple de ce que ça retourne pour les lignes suivantes :

Code : Tout sélectionner

$point = new point();
$point->id = $_GET['id'];
$point->getInfos(0);

print_r($point);

Une URL pour essayer (base de test) :
http://leo.refuges.info/modeles/point.obj.php?id=2777

Est-ce que vous pensez que cette méthode peut-être la bonne ?

Léo
Avatar du membre
sly
Messages : 4763
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Sans présager de mon questionnement sur l'autre fil de discussion "est-ce que ça vaut le coup ?"

Je trouve ton exemple très bien, même si je ne suis pas un expert en objet pour savoir s'il est plus commun/concis de faire :

Code : Tout sélectionner

$point = new point($_GET['id']); --> utilisation d'un constructeur
print_r($point);
ou plutôt de faire comme tu as fais

Note : avec les modèles actuels, en non objet on ferait ça comme ça :

Code : Tout sélectionner

$point = infos_point($_GET['id']);
print_r($point);
Je note au passage dans ton code que tu fais l'effort de très bien organiser les différentes propriétés, là où j'ai choisi par défaut la simplicité d'avoir :
champ dans la base = propriété du point
ce qui est certes plus court à coder genre, si je reprends ton code et fait à la cochon, ça donne ça :

Code : Tout sélectionner

$res = $res->fetch();
foreach ($res as $champ => $value )
  $this->$champ=$value
Mais il faut alors une base avec des champs explicites, clairs, et homogènes (séparateur de mot, id de liaison, unicité à travers toutes les tables) ce qui n'est pas toujours le cas hélas aujourd'hui et cause donc de mal de tête à se demander comment c'est rangé ! et demanderait un bon ménage (C'est user_id ou id_createur ou id_user déjà ?)
bref, SQL, c'est pas bien prévu objet, mais on peut aider avec un peu de rigueur pour choisir les noms et ne pas avoir à tout le temps chercher comme s'écrit tel champs (ou tel propriété de l'objet point)

J'ignore si ta méthode est meilleure au global que ma technique plus sauvage
Avatar du membre
leosw
Messages : 523
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

sly a écrit :Note : avec les modèles actuels, en non objet on ferait ça comme ça :

Code : Tout sélectionner

$point = infos_point($_GET['id']);
print_r($point);
J'en reviens à ce que je disais sur l'autre fil, effectivement on va faire comme ça :). On garde le modèle mais je suis obligé de refaire le reste.
Avatar du membre
Dominique
Messages : 3474
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :il est plus commun/concis de faire :

Code : Tout sélectionner

$point = new point($_GET['id']); --> utilisation d'un constructeur
print_r($point);
+1
Avatar du membre
leosw
Messages : 523
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Dominique a écrit :
sly a écrit :il est plus commun/concis de faire :

Code : Tout sélectionner

$point = new point($_GET['id']); --> utilisation d'un constructeur
print_r($point);
+1
Comme j'ai dit, j'abandonne ma syntaxe vu que sly a admirablement défendu la sienne que je ne pensais pas si simple.

Pour la correction du constructeur pour ma culture G c'est ça l'exemple.

Léo
Répondre