OU encore plus con (mais tout de même déconseillé, c'est mieux de séparer les choses) :
dans le executeBLABLA: $this->calculeurEffectif = $this; Comme ça pas besoin de créer une classe à part entière (si t'as que deux fonctions bon ça pourait être ok) mais si ça grossit, hop tu créé une deuxième classe et tu change le = $this par le = new taClasseCalcule(); Before Printing, Think about Your Environmental Responsibility! Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! 2010/11/23 Stéphane <[email protected]> > Ah. > > Bah fait ceci alors, dans ton executeBLABLA: > > $this->calculeurEffectif = new taClasseDeCalcul(); > > Ainsi tu pourras l'utiliser dans ton template > > <?php echo $calculeurEffectif->calculblabla(...);?> > > Tu peux aussi créer un Helper approprié et créer des fonctions appropriés > selon tes besoins. > Par exemple tu pourrais faire une classe singleton qui serait utilisée au > travers de tes helpers. > Ceci dit les helpers c'est bien pour la logique d'affichage, pas pour gérer > de la logique métier, donc je préfère utiliser la première méthode donnée ci > dessus. > > > > Before Printing, Think about Your Environmental Responsibility! > Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! > > > 2010/11/23 manuel brossard <[email protected]> > >> Oui, justement je passe des paramètres différents en fonction du template >> et surtout de leur emplacement. >> >> Ainsi pour la première ligne j' appel ma fonction avec calculeffectif(1, >> $effectif, $id ); >> Pour la seconde calculeffectif(2, $effectif, $id ); >> etc.. >> >> Je parcours donc plusieurs fois mon tableau de résultat pour en extraire >> les valeurs des colonnes souhaités dans mon template. >> >> Merci de ton aide. >> >> Les tutos jobeet sont pas mal.. mais ya pas bcp d' info sur ces cas.. la >> malheuresement.. moins bateau que je mets les cubes dans les cubes ou l' >> explication est presque évidente.. trop surement , mais c' est déja pas mal >> quand un on se fait au mvc je reconnais.. >> >> >> >> >> >> >> Le total est fonction d' une ligne d' un tableau.. >> >> Le 23 novembre 2010 13:04, Stéphane <[email protected]> a écrit : >> >> Aaah ok tu appels ces fonctions dans le template au lieu de les appeler >>> dans l'action ! >>> On le voit car l'erreur stipule que tu appel ->calculeffectif sur un >>> objet de la classe sfPHPView ! >>> >>> Il faut que tu appels cette fonction dans le executeShowevaluation par >>> exemple : >>> >>> public function executeShowevaluation (sfWebRequest $request) >>> { >>> $this->id = $request->getParameter('id'); >>> $this->name = Doctrine_Core::getTable(' >>> Customer')->getFirstName($this->id); >>> $this->evaluation = >>> Doctrine_Core::getTable('Evaluation')->getEvaluationbycustomer($this->id); >>> $this->total = $this->calculeffectif(....); >>> } >>> >>> >>> Ainsi dans ton template, tu auras accès la variable $total : >>> <?php echo $total?> >>> >>> Je te conseil vivement de lire les tutoriaux (vraiment bien faits) de >>> symfony (genre Jobeet) >>> >>> >>> >>> >>> >>> Before Printing, Think about Your Environmental Responsibility! >>> Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! >>> >>> >>> 2010/11/23 manuel brossard <[email protected]> >>> >>>> Quel objet ? >>>> >>>> Voici la classe complète, mes 3 premières fonctions renvoi bien le >>>> résultat attendu dans mes templates.. >>>> >>>> >>>> class consultantActions extends autoConsultantActions >>>> { >>>> >>>> public function executeShow (sfWebRequest $request) >>>> { >>>> $this->id = $this->getUser()->getGuardUser()->getId(); >>>> $this->customers = >>>> Doctrine_Core::getTable('Customer')->getMycustomer($this->id); >>>> } >>>> >>>> public function executeShowevaluation (sfWebRequest $request) >>>> { >>>> $this->id = $request->getParameter('id'); >>>> $this->name = >>>> Doctrine_Core::getTable('Customer')->getFirstName($this->id); >>>> $this->evaluation = >>>> Doctrine_Core::getTable('Evaluation')->getEvaluationbycustomer($this->id); >>>> } >>>> >>>> public function calculeffectif ($effectif, $theme, $customer) >>>> >>>> { >>>> $array = $this->evaluation = >>>> Doctrine_Core::getTable('Evaluation')->getEvaluationbycustomer($customer); >>>> $j=0; >>>> foreach ($array as $i => $value) { >>>> if ( $array[$i]['score'.$theme] == $effectif) { >>>> $j++; >>>> } >>>> } >>>> return $j; >>>> >>>> } >>>> >>>> >>>> >>>> >>>> Le 23 novembre 2010 12:44, Stéphane <[email protected]> a écrit >>>> : >>>> >>>> D'acc, le code de la classe entière c'est possible ? et le code >>>>> d'utilisation de l'objet ? >>>>> >>>>> Sinon on ne peut pas vraiment aider... Tu le comprends sûrement ! >>>>> >>>>> >>>>> Before Printing, Think about Your Environmental Responsibility! >>>>> Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! >>>>> >>>>> >>>>> 2010/11/23 manuel brossard <[email protected]> >>>>> >>>>>> Le voici... >>>>>> >>>>>> >>>>>> >>>>>> public function totaleffectifbytheme ( $theme, $customer) >>>>>> >>>>>> { >>>>>> >>>>>> $this->calculeffectif(1, $theme, $customer); >>>>>> $this->calculeffectif(2, $theme, $customer); >>>>>> $this->calculeffectif(3, $theme, $customer); >>>>>> $this->calculeffectif(4, $theme, $customer); >>>>>> $this->calculeffectif(5, $theme, $customer); >>>>>> $this->efftotal= $this->eff1 + $this->eff2 + $this->eff3 + >>>>>> $this->eff4 + $this->eff5 ; >>>>>> >>>>>> >>>>>> return $this->efftotal; >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> Le 23 novembre 2010 12:32, Stéphane <[email protected]> a >>>>>> écrit : >>>>>> >>>>>> Le coooooode :) >>>>>>> >>>>>>> pastebin est ton ami pour poster du code sur le net :) >>>>>>> >>>>>>> >>>>>>> Before Printing, Think about Your Environmental Responsibility! >>>>>>> Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! >>>>>>> >>>>>>> >>>>>>> 2010/11/23 manuel brossard <[email protected]> >>>>>>> >>>>>>>> Oui j' ai essayé cela mais cela ne change rien.. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Le 23 novembre 2010 12:28, Stéphane <[email protected]> a >>>>>>>> écrit : >>>>>>>> >>>>>>>>> Si tu pouvais nous montrer le code, ça aiderait ! >>>>>>>>> >>>>>>>>> Tu utilises bien $this->NOMDELAFONCTION ? >>>>>>>>> Je demande ça parce qu'au vu du code : >>>>>>>>> $calcul3=FonctionCalculBase($p1, $p2, $p3) >>>>>>>>> on dirait que non >>>>>>>>> >>>>>>>>> $calcul3= $this->FonctioncalculBase(...); ? >>>>>>>>> >>>>>>>>> >>>>>>>>> Before Printing, Think about Your Environmental Responsibility! >>>>>>>>> Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! >>>>>>>>> >>>>>>>>> >>>>>>>>> 2010/11/23 mantex <[email protected]> >>>>>>>>> >>>>>>>>> Bonjour à tous, >>>>>>>>>> >>>>>>>>>> Je développe mon premier projet sous symfony et je rencontre pas >>>>>>>>>> mal >>>>>>>>>> de difficulté pour trouver ou mettre mon code voir quel fonction >>>>>>>>>> utilisé pour faire des choses simples. >>>>>>>>>> >>>>>>>>>> Par exemple .. >>>>>>>>>> >>>>>>>>>> Dans une classe evaluation.action >>>>>>>>>> >>>>>>>>>> J' ai 2 fonctions.. >>>>>>>>>> >>>>>>>>>> Une qui effectue un calcul >>>>>>>>>> >>>>>>>>>> et une autre qui est cencé faire la sommes des valeurs retourné >>>>>>>>>> par la >>>>>>>>>> première. >>>>>>>>>> >>>>>>>>>> Exemple shématisé : >>>>>>>>>> >>>>>>>>>> FonctionCalculBase($p1, $p2, $p3) >>>>>>>>>> >>>>>>>>>> { >>>>>>>>>> .... >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> FonctionSomme ($p1, $p2) >>>>>>>>>> >>>>>>>>>> { >>>>>>>>>> >>>>>>>>>> $p3='valeur'; >>>>>>>>>> $calcul1=FonctionCalculBase($p1, $p2, $p3) >>>>>>>>>> $calcul2=FonctionCalculBase($p1, $p2, $p3) >>>>>>>>>> $calcul3=FonctionCalculBase($p1, $p2, $p3) >>>>>>>>>> >>>>>>>>>> return $somme= calcul1 + calcul2 + calcul3; >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> J' obtiens un erreur à l' appel des mes foncions >>>>>>>>>> FonctionCalculBase() >>>>>>>>>> dans le FonctionSomme. >>>>>>>>>> >>>>>>>>>> Une idée ? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ' >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>>>>>>> Groupes Symfony-fr. >>>>>>>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>>>>>>> [email protected]. >>>>>>>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>>>>>>> [email protected]<symfony-fr%[email protected]> >>>>>>>>>> . >>>>>>>>>> Pour plus d'options, consultez la page de ce groupe : >>>>>>>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>>>>>>> >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>>>>>> Groupes Symfony-fr. >>>>>>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>>>>>> [email protected]. >>>>>>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>>>>>> [email protected]<symfony-fr%[email protected]> >>>>>>>>> . >>>>>>>>> Pour plus d'options, consultez la page de ce groupe : >>>>>>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Cordialement, >>>>>>>> >>>>>>>> Manuel Brossard >>>>>>>> Twitter: twitter.com/infonel >>>>>>>> Skype : mantex2039 >>>>>>>> >>>>>>>> Tel: + 33 9 72 17 00 41 >>>>>>>> >>>>>>>> -- >>>>>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>>>>> Groupes Symfony-fr. >>>>>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>>>>> [email protected]. >>>>>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>>>>> [email protected]<symfony-fr%[email protected]> >>>>>>>> . >>>>>>>> Pour plus d'options, consultez la page de ce groupe : >>>>>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>>>> Groupes Symfony-fr. >>>>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>>>> [email protected]. >>>>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>>>> [email protected]<symfony-fr%[email protected]> >>>>>>> . >>>>>>> Pour plus d'options, consultez la page de ce groupe : >>>>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Cordialement, >>>>>> >>>>>> Manuel Brossard >>>>>> Twitter: twitter.com/infonel >>>>>> Skype : mantex2039 >>>>>> >>>>>> Tel: + 33 9 72 17 00 41 >>>>>> >>>>>> -- >>>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>>> Groupes Symfony-fr. >>>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>>> [email protected]. >>>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>>> [email protected]<symfony-fr%[email protected]> >>>>>> . >>>>>> Pour plus d'options, consultez la page de ce groupe : >>>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>>> >>>>> >>>>> -- >>>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>>> Groupes Symfony-fr. >>>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>>> [email protected]. >>>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>>> [email protected]<symfony-fr%[email protected]> >>>>> . >>>>> Pour plus d'options, consultez la page de ce groupe : >>>>> http://groups.google.com/group/symfony-fr?hl=fr >>>>> >>>> >>>> >>>> >>>> -- >>>> Cordialement, >>>> >>>> Manuel Brossard >>>> Twitter: twitter.com/infonel >>>> Skype : mantex2039 >>>> >>>> Tel: + 33 9 72 17 00 41 >>>> >>>> -- >>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>> Groupes Symfony-fr. >>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>> [email protected]. >>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>> [email protected]<symfony-fr%[email protected]> >>>> . >>>> Pour plus d'options, consultez la page de ce groupe : >>>> http://groups.google.com/group/symfony-fr?hl=fr >>>> >>> >>> -- >>> Vous recevez ce message, car vous êtes abonné au groupe Google >>> Groupes Symfony-fr. >>> Pour envoyer un message à ce groupe, adressez un e-mail à >>> [email protected]. >>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>> [email protected]<symfony-fr%[email protected]> >>> . >>> Pour plus d'options, consultez la page de ce groupe : >>> http://groups.google.com/group/symfony-fr?hl=fr >>> >> >> >> >> -- >> Cordialement, >> >> Manuel Brossard >> Twitter: twitter.com/infonel >> Skype : mantex2039 >> >> Tel: + 33 9 72 17 00 41 >> >> -- >> Vous recevez ce message, car vous êtes abonné au groupe Google >> Groupes Symfony-fr. >> Pour envoyer un message à ce groupe, adressez un e-mail à >> [email protected]. >> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >> [email protected]<symfony-fr%[email protected]> >> . >> Pour plus d'options, consultez la page de ce groupe : >> http://groups.google.com/group/symfony-fr?hl=fr >> > > -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
