Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-04-2008 16:58:38

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[1.5]Sous quelle forme passer les données a la vue ?

Bonjour,

Petite question existentielle de l'après midi :
Je dois passer un ensemble de lignes de commandes a ma vue.
J'hésite à lui passer un seul tableau de lignes de commandes du genre :

- numéro de commande
- libelle commande
- numéro ligne de commande
- article...
=> donc pour chaque ligne de commande répéter les informations de la commande

ou un tableau du genre

array(numero de commande, libelle commande,
       array(numero de ligne de commande,article),
       array(numero de ligne de commande,article),
       array(numero de ligne de commande,article)
=> donc des commandes qui contiennent des lignes de commande.

Je trouve que les deux méthodes se défendent :
méthode 1 : a l'avantage de pouvoir traiter une ligne indépendamment de son contexte, de la désolidariser des autres.
méthode 2 : pas de répétition de l'information commande.

Donc je pencherai plutôt pour la première, je trouve que c'est celle qui permet vraiment le plus d'abstraction et permet a la vue de traiter les données comme elle le veut...je lui donne le tableau a afficher et elle fait ce qu'elle veut...mais bon...ouvert a toute remarque ou retour d'expérience... :)

Dernière modification par bertra (07-04-2008 16:58:59)

Hors ligne

 

#2 07-04-2008 23:18:43

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.5]Sous quelle forme passer les données a la vue ?

Tu peux aussi créer une petite classe, c'est ça qui serait le plus souple wink
Poo spirit !

Hors ligne

 

#3 08-04-2008 06:54:08

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [1.5]Sous quelle forme passer les données a la vue ?

Je suis d'accord avec Mr.Mox, par exemple une classe commande contenant un tableau de ligne de commande (qui serait aussi une classe). Après tout si tu ne veux pas utiliser de bd, tu peux très  bien gérer tes commandes en utilisation la sérialisation d'objet.

Hors ligne

 

#4 08-04-2008 07:13:15

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [1.5]Sous quelle forme passer les données a la vue ?

sans créer de classe un tableau de stdClass objet ce serait déjà pas mal

Hors ligne

 

#5 08-04-2008 08:39:58

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Sous quelle forme passer les données a la vue ?

Si on se comprend bien, vous me conseillez de passer des objets a ma vue ???
C'est ce que j'avais fait au début intuitivement, et j'ai tout cassé parce que justement je me suis dit que les classes sont trop dépendantes de l'application (controlleur) et que du coup la vue le devenait. smile non ?

Dernière modification par bertra (08-04-2008 09:08:24)

Hors ligne

 

#6 08-04-2008 09:29:56

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.5]Sous quelle forme passer les données a la vue ?

Bonjour bertra,

Perso, la métode que je préfère c'est la méthode No 2 (le tableau à 2 niveaux).

Je ne suis pas trop pour envoyer une classe à la vue, je trouve effectivement qu'un bête tableau de données simples, ça permet d'avoir une vue beaucoup plus indépendante du reste du code...

Je prèfère la méthode 2 à la 1 parce qu'on est plus proche de la réalité (une commande contient des lignes) et lors d'évolutions ultérieures (un client qui demande un truc ésothérique), on risque moins de se retrouver bloqué... Cela dit les 2 méthodes me parraissent correctes...

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#7 09-04-2008 07:58:31

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [1.5]Sous quelle forme passer les données a la vue ?

j'ai sur mes classe un méthodes toStdClass qui retourne un stdClass object

Code:

   public function toStdClass() {
      return (object) get_object_vars($this);
   }

lorsque je donne un objet à la vue je donne en fait le résultat de cette méthode. du coup j'ai une indépendance entre le contrôleur et la vue.

je fais de même lorsque je mets un objet en session. (plus de Incomplete class)
donc un tableau d'objet dans la vue c'est pratique pour l'écriture de la vue et ça reste indépendant de l'application.

je ne passe jamais les éléments de mon appli directement à la vue, je ne passe que des copies (des clones)
car si un objet est placé en session qu'on donne cet objet à la vue alors la vue peu changer les valeur qui son en session. utiliser une copie bloque cette possibilité
cela rends étanche les couches applicaives.

A+JYT

Hors ligne

 

#8 09-04-2008 09:29:18

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [1.5]Sous quelle forme passer les données a la vue ?

Un conteneur quelconque, tableau ou objet, fait très bien l'affaire.
Il faut éviter de trop complexifier ses processus et toujours rester le plus simple et naturel possible.
Perso je passe des tableaux, souvent issus de l'ORM (->fetch****()) sans plus m'embetter ^^

Hors ligne

 

#9 09-04-2008 10:15:30

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5]Sous quelle forme passer les données a la vue ?

Ok, merci pour ces commentaires très instructifs smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages