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

Répondre à