Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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
sans créer de classe un tableau de stdClass objet ce serait déjà pas mal
Hors ligne
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. non ?
Dernière modification par bertra (08-04-2008 09:08:24)
Hors ligne
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
Hors ligne
j'ai sur mes classe un méthodes toStdClass qui retourne un stdClass object
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
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
Ok, merci pour ces commentaires très instructifs
Hors ligne
Pages: 1