Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 12h25   #1
Invité de passage
 
Inscription : juin 2008
Messages : 40
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 40
Points : 2
Points : 2
Par défaut [Propel]Manipulation des objets et appel des fonctions

Bonjour,

Je suis actuellement en contrat de professionnalisation dans une petite boite fournissant du Wimax ( http://www.lgtel.fr ) ou je suis chargé de maintenir et de faire évoluer le site conçu à la base avec symfony.

N’étant pas du tout habituer a l'utilisation du framework, j'ai eu un départ difficile mais petit a petit, j'ai commencer a gérer (un peu ) le framework.

J'ai eu une formation de deux jours sur les formulaires, la génération de modules ect, mais ce fut bien cours xD.

Bon, fini de raconter ma vie xD.

Pourriez vous m'aider a comprendre l'appel d'objet dans symfony, j'ai beaucoup de mal avec cette notion.

Je développe actuellement une appli d'envoi de sms depuis le web basé sur les api ovh et une bdd MySQL.

Voila ma fonction :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    public function executeSendsms(sfWebRequest $request)
    {
        $this->forward404Unless($request->isMethod(sfRequest::POST));
        $form = new SipSmsForm();
        $this->sipline = SipLinePeer::getByUserId($this->getUser()->getId());
        $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid())
        {
            $Sipsms = $form->save();
            $Sipsms->setDateEnvoi(date('Y-m-d'));
            $Sipsms->setUserId($this->getUser()->getId());
            $Sipsms->save();
            try {
                $soap = new SoapClient("https://www.ovh.com/soapi/soapi-re-1.12.wsdl",array("trace"=> 1,"exceptions"=>0));
                $session = $soap->login("cb2850-ovh", "dAKoWvo1","fr", false);
                $result = $soap->telephonySmsSend($session, "sms-cb2850-1", "+33".substr($this->sipline->getNumber(),1), $Sipsms->getNumEnvoi(), $Sipsms->getTextSms(), "", "", "", "", "", "");
                $this->message = "telephonySmsSend successfull ". "+33".substr($this->sipline->getNumber(),1)." ".$Sipsms->getNumEnvoi()."\n";
                $soap->logout($session);
                $profile = sfGuardUserProfilePeer::getByID($this->getUser()->getId());
                $profile->getSmsCredit();
                var_dump($profile);
                $profile = $profile - 1;
                $profile->setSmsCredit($Profile);
                $profile->Save();

                }
            catch(SoapFault $fault) {
                 echo $fault;
                }
            $this->redirect('account/Sms');
        }
        else
        {
            $this->form = $form;
            $this->setTemplate('Infosms');
        }

Mon problème se situe au niveau de la partie rouge du code. J'essaye de décrémenté ma variable profile, mais mon var_dump, au lieu de me renvoyer un INT, me renvoi l'objet complet.

Je ne sais pas comment récupéré uniquement mon sms_crédit dispo dans ma table SfGuardUserProfile.

Si vous aviez une idées, vous me sortiriez une grosse épine du pied :-D.

Merci d'avance,

Djillian

P.S : Si besoin est, je tiens à votre disposition tous les morceaux de code nécessaire.
Djillian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 14h47   #2
Invité de passage
 
Inscription : juin 2008
Messages : 40
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 40
Points : 2
Points : 2
Code :
1
2
3
4
5
6
7
//récupération de l'objet profile
$this->profile = sfGuardUserProfilePeer::getByID($this->getUser()->getId());
//Récupération du crédit de l'objet profile
$credit = $this->profile->getSmsCredit(); 
$credit = $credit - 1;
$this->profile->setSmsCredit($credit);
$this->profile->Save();
La solution, si sa peut aider quelqu'un un jour ;-D
Djillian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 16h43   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Le problème c'est qu'il y a très peu d'intervenant ici qui pratiquent propel.

Pour ma part, j'ai arrêté propel il y a plus de deux ans et ce n'est plus très frais.

Ton code en rouge me semble pour le moins "étonnant"
Le var-dump c'est pour débug ?
Je ne vois pas l'intérêt d'un $profile->getSmsCredit(); qui récupère un contenu, le SmsCredit et n'en fait rien.
Je doute que "$profile = $profile - 1;" aie la moindre chance de fonctionner, $profile est un objet...
Quant à "$profile->setSmsCredit($Profile);" qui essaye de faire entre l'objet lui même dans une de ces propriétés, il me semble un peu hasardeux. Et en plus on a des $profile et des $Profile, apte à créer de gros bugs par confusion de varibles.

Dans les solutions je te proposerais de suivre le tutoriel symfony avec propel. Ensuite de bien mettre sur papier (ou dans la tête) le détail du traitement a faire sur le smsCredit.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 16h53   #4
Invité de passage
 
Inscription : juin 2008
Messages : 40
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 40
Points : 2
Points : 2
En fait, je travaille sur un site développé a la base en propel, du coup je n'ai pas le choix pour le moment.

De toute façon, je fini de développer les appli que j'ai sur le feux ( Configurateur avec génération PDF et envoi Sms), et après je vais passer le site sous Doctrine avec symfony 2.0.

ça me fera un bon entrainement je pense ;-) ( Prendre un contrat pro qui voit pas les BDD avant la deuxième année et le lancer sur symfony, c'est une bonne idée xD )
Djillian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 17h12   #5
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Oui
Surtout qu'il n'y a pas (encore) de tutoriel sur Symfony 2 et que c'est un produit radicalement différent. Heureusement Doctrine 2 est un peu plus proche de sa version 1.2. Un peu.

Reste que Symfony 2 est un beau produit prometeur.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 17h22   #6
Invité de passage
 
Inscription : juin 2008
Messages : 40
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 40
Points : 2
Points : 2
Okey, j'en connais un qui va s'amuser xD. On fera Jobet et on attendra un Tuto je crois xD
Djillian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web