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].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à