Dans le root de ton projet, t'as un répertoire lib. Tu créés dedans un fichier "calculeurEffectifs.class.php", et tu y créé dedans une classe du même nom. Ainsi cette classe sera accessible à toutes tes applications. Si tu veux qu'elle ne soit accessible que pour une app, tu créés ce fichier/class dans le répertoire lib de l'app (%SF_ROOT_DIR%/apps/%APP%/lib)
Elle sera autoloadable par le framework. Donc dans ton action, tu pourras de suite écrire $this->calculeur = new calculeurEffectif(); N'oublie pas de ./symfony cc avant de faire une requête http Tout ça est très bien expliqué dans les différents ouvrages sur symfony ! Certes y a beaucoup à lire (tutos, plus deux ou trois livres), mais si tu veux vraiment utiliser sf et profité de ses avantages, lis les dès que tu peux ;) Before Printing, Think about Your Environmental Responsibility! Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! 2010/11/23 manuel brossard <[email protected]> > OK je demande que cela.. Comment crée tu une classe manuellement ? Comment > la rendre accessible depuis mon controleur courant. > > Merci, tu m' aides bcp la que la plupart des doc que je lis depuis 3 > semaines... > > > > Le 23 novembre 2010 13:41, Stéphane <[email protected]> a écrit : > > Non effectivement il n'aime pas. >> >> Si tu veux laisser la function calculeffectif dans l'action, tu dois >> faire, dans executeBLABLA: >> $this->calculeur = $this; >> Ainsi dans ton template tu auras accès à l'objet blablaActions, et donc à >> sa fonction calculeffectif. >> >> L'autre solution est de déporter le code de calcul dans une classe métier >> qui n'a que ça à faire (ainsi tu sépares ton code, et c'est mieux : imagines >> que tu aies besoin d'appeler cette fonction au par ailleurs : tu ne pourras >> pas car tu devras instancier l'action -ce qui n'est pas ton boulot, mais >> celui du framework). >> >> Donc je te conseil vivement de créer une nouvelle classe >> "calculeurEffectifs", d'y mettre tes fonctions de calculs, et dans ton >> executeBLABLA de faire ceci: >> $this->calculeur = new calculeurEffectifs(); >> >> Après dans ton template tu pourras faire <?php echo >> $calculeur->calculeffectif(...);?> >> >> >> >> >> Before Printing, Think about Your Environmental Responsibility! >> Avant d'Imprimer, Pensez à Votre Responsabilitée Environnementale! >> >> >> 2010/11/23 manuel brossard <[email protected]> >> >>> Je suis dans la classe consultantActions (actions.class.php) donc il faut >>> que je fasse un >>> >>> $this->calculeurEffectif = new consultantActions (); >>> >>> ? >>> >>> >>> >>> je crois que j' ai déja essayé il aime pas trop car il essai de contruire >>> une nouvelle fois la classe consultantActions . >>> >>> >>> >>> >>> Le 23 novembre 2010 13:27, Stéphane <[email protected]> a écrit : >>> >>> 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]<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
