IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Accès à une variable impossible!


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut [POO] Accès à une variable impossible!
    J'ai un problème assez ennuyeux avec ma POO... en fait je n'arrive pas à obtenir le contenu d'une variable, même en passant par un getter.
    En fait ce que je souhaite faire c'est ma classe personnelle pour FPDF (en fait partir de la base de phpToPDF).

    Voici mon code (simplifié qui ne fonctionne pas non plus ^^):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    class InvoicePDF extends phpToPDF {
     
    	private $invoiceNumber;
     
    	public function setInvoiceNumber($invoiceNumber) {
    		$this->invoiceNumber = utf8_decode($invoiceNumber);
    	}
    	public function getInvoiceNumber() {
    		return $this->invoiceNumber;
    	}
     
    	public function Header() {
    		//Logo Silversquare
    	    //$this->Image('../img/logo_silversquare.jpg',94,22,30,35);
    	    //Invoice Number
    	    echo 'InfoHeader ',$this->getInvoiceNumber();
    	    /*$this->SetFont('Arial','B',12);
    	    $this->Text(155,54, $this->getInvoiceNumber());//$this->invoiceLabel['invoiceNumber'].$this->invoiceNumber);
    	    $this->Line(153,56,197,56);
    	   	// WaterMark
    	    if ($this->invoiceWaterMarkText != null)
    	    	$this->waterMark($this->invoiceWaterMarkText,array(10,52));
    	    //Saut de ligne
    	    $this->Ln(65);*/
    	}
     
    	public function test() {
    		echo 'InfoTEST : ',$this->getInvoiceNumber();
    	}
    }
    ?>
    La fonction Header est appelée par l'ancêtre (je redéfini donc la fonction).
    Le résultat est simple: il m'affiche "InfoHeader".

    Je ne parviens pas à recevoir la valeur que j'ai passé au setter en paramètre.
    Par contre, si j'appelle ma fonction test() alors le contenu est bien affiché...

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Pourrais-tu nous donner le code pour l'instantiation et les appels de méthodes?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Et prends l'habitude de concaténer avec un point et non avec une virgule.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Et prends l'habitude de concaténer avec un point et non avec une virgule.
    La virgule empêche justement la concaténation... au niveau PHP c'est plus rapide.

    Voici mon code d'instanciation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			$pdf = new InvoicePDF();
    			$pdf->AddPage();
    			$pdf->setInvoiceLabel(array('invoiceNumber'=>'Facture n°'));
    			$pdf->setInvoiceNumber('2008/45');
    			$pdf->setInvoiceWaterMarkText('OHLOL');
    			//$pdf->test();
    			$pdf->Output();

  5. #5
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Bizarre, ça devrait fonctionner si on s'en tient à ton exemple de code. Utilises-tu un debuger ? Que se passe-t-il dans la fonction getInvoiceNumber() ?
    As tu essayé de placer des echo en amont pour voir quoi est appelé et ce que contiennent les variables ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Si j'essaye de l'afficher aucun soucis... sauf dans cette fonction Header!

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Quand tu dis que tu rédéfini la fonction, ça veut dire qu'elle est déjà dans la classe mère ? A priori je ne vois pas le problème, mais pour en avoir le coeur net, renommer Header en HeaderBis pour voir ce que donne son appel.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Cela fonctionne sans problème.

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par k o D Voir le message
    Cela fonctionne sans problème.
    C'est à dire ? Le problème est toujours là ou pas ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par jml94 Voir le message
    C'est à dire ? Le problème est toujours là ou pas ?
    Avec Header2 cela fonctionne, mon echo affiche bien l'information.
    Bref je vais chipotter un peu... ce que je ne comprend pas c'est que j'ai utilisé ce code avant sans aucune difficulté (qui plus est niveau POO ça doit tourner!).

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Points : 173
    Points
    173
    Par défaut
    Tu as vérifier que tu avais le droit de redéfinir cette méthode !!!

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Bien entendu, c'est même le principe de FPDF et co...

    La méthode Header me permet de dessiner le haut de page pour chaque nouvelle page dans mon fichier PDF fourni.
    Donc oui je redéfini Header pour afficher ce que j'ai besoin.

  13. #13
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Pourrais-tu poster le code où l'on voit l'appel à cette fameuse méthode Header ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Heu disons que ça risque d'être volumineux... c'est une grosse classe.

    En fait vous trouverez le script à cette adresse: http://www.fpdf.org/

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Points : 173
    Points
    173
    Par défaut
    Qu'elle est cette classe "phpToPdf" car dans la dernière version de FPDF, ya aucune classe de ce nom. Tu hérites de la classe FPDF !

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    phpToPDF est une classe apportant encore d'autres fonctionnalités à FPDF.
    Il y a d'ailleurs sur ce site un tutoriel qui lui est consacré:

    ICI

  17. #17
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par k o D Voir le message
    Heu disons que ça risque d'être volumineux... c'est une grosse classe.

    En fait vous trouverez le script à cette adresse: http://www.fpdf.org/
    Donc la méthode Header est appelée de la classe mère. Pas étonnant alors, non ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  18. #18
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par k o D Voir le message
    phpToPDF est une classe apportant encore d'autres fonctionnalités à FPDF.
    Il y a d'ailleurs sur ce site un tutoriel qui lui est consacré:

    ICI
    Je suis plutôt un fan de TCPDF, mais je vais aller voir cette classe.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Donc la méthode Header est appelée de la classe mère. Pas étonnant alors, non ?
    Bien entendu la méthode est appelée de la classe mère, c'est ce que j'ai dis depuis le début

    En fait ce que je ne sais pas c'est comment PHP interprète le $this parce que j'imagine que c'est là que ça coince.

    Ma classe mère appelle une fonction "overwritée" dans ma classe fille qui elle appelle une fonction de cette classe fille.

    Sinon oui, TCPDF est pas mal du tout mais en fait je n'ai pas envie de recommencer le travail que j'avais effectué jusque là (je dois réadapter un schéma PDF existant en lui rajoutant certaines infos)

  20. #20
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par k o D Voir le message
    Bien entendu la méthode est appelée de la classe mère, c'est ce que j'ai dis depuis le début
    Autant pour moi, j'avions pas tout lu.
    Citation Envoyé par k o D Voir le message
    En fait ce que je ne sais pas c'est comment PHP interprète le $this parce que j'imagine que c'est là que ça coince.
    C'est maintenant sûr.
    Citation Envoyé par k o D Voir le message
    Ma classe mère appelle une fonction "overwritée" dans ma classe fille qui elle appelle une fonction de cette classe fille.
    Justement non : la classe mère appelle sa propre classe Header() sans faire appelle à la classe surchargée. L'héritage n'est pas aussi avancé en php.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [POO] Accès à une variable de la classe parent
    Par escteban dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2008, 09h26
  2. Réponses: 5
    Dernier message: 23/11/2006, 13h55
  3. [POO] Problème d'accès à une variable privée
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 21h43
  4. [Debutant][Tomcat] acces à une servlet impossible .
    Par michaelbob dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 04/04/2005, 10h01
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo