Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-10-2010 16:28:27

ganlhi
Membre
Date d'inscription: 05-01-2010
Messages: 15

Passage d'objet en paramètre de partial()

Bonjour à tous !

J'utilise la bibliothèque writeexcel pour générer des fichiers Excel en PHP.
Le code d'écriture du fichier Excel est dans ma vue, et comme il est long et complexe, je voulais le découper grâce à partial(), tout comme je le fais pour la version HTML de cette vue.

Mais je me trouve confronté à un problème : que je passe l'objet worksheet à mes vues partielles via les paramètres de partial ou via le registre, dans tous les cas mon fichier est toujours vide en sortie...

Je soupçonne que l'objet que je manipule dans ma vue partielle est un clone de celui que j'ai passé en paramètre, et donc il n'écrit pas dans le fichier que j'envoie au client à la fin de la vue. Y a-t-il un moyen de transmettre cet objet à mes vues partielles par référence ?

Merci d'avance.

Hors ligne

 

#2 06-10-2010 18:21:46

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: Passage d'objet en paramètre de partial()

Les objets sont toujours passés par référence en PHP5

Hors ligne

 

#3 06-10-2010 18:38:16

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Passage d'objet en paramètre de partial()

Salut,


Quand tu passes des variables à un partial, le ZF ne fait qu'assigner ces variables aux clés correspondantes dans la vue du partial, tout comme tu le ferais dans une action de contrôleur ($this->assign('objet', $objet)).

Dans le cas d'un objet, heureusement il n'est pas cloné sinon ce serait la catastrophe. Par contre attention, si tu passes directement l'objet et non pas l'objet dans un array et qu'une méthode toArray() existe dans l'objet, elle sera invoquée.

Ex.

Code:

echo $this->partial('toto.phtml', $this->monObjet);

Si monObjet a une méthode toArray(), elle sera invoquée (si je ne me trompe pas). Du coup chaque propriété de l'objet sera accessible comme une variable de vue, monObject->truc sera accessible dans le partial part $this->truc.

2ème Ex.

Code:

echo $this->partial('toto.phtml', array('monObjet' => $this->monObjet);

Ton objet sera accessible normalement dans le partial via $this->monObjet ($this->monObjet->truc).


Je pense que ton problème vient surtout de l'ordre dans lequel sont rendus les vues et les partials qui n'est peut-être pas celui que tu penses.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 07-10-2010 08:48:39

ganlhi
Membre
Date d'inscription: 05-01-2010
Messages: 15

Re: Passage d'objet en paramètre de partial()

Hum... C'est bizarre cette histoire...
Bon au moins ça m'enlève le doute au sujet du passage d'objet. J'avais oublié de préciser, mais je passais bien l'objet dans un tableau.

Bon de toute façon après réflexion, je pense que j'aurais besoin de ce code de génération Excel à d'autres endroits dans mon application, alors je vais plutôt créer une aide de vue qui s'occupera de ça, et je me contenterai de l'appeler dans ma vue.

Merci pour les précisions !

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