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 :

passage de variables dans une Class


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut passage de variables dans une Class
    Bonjour à tous,

    Je rencontre un soucis de programmation. je ne sais pas comment récupérer des variables dans une class, variables précédemment définies

    Voici ma structure de code :

    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
    32
    33
    34
    35
    <?
    début du code PHP où je récupère des variables.
     
    exemple
    if ($langue_client=='FR')
    {
    $nom_PoliceNormal='DejaVuSans.ttf'; 
    $nom_PoliceGras='DejaVuSans-Bold.ttf';
    }
     
    class PDF8 extends TFPDF
    {
    	//En-tête
    	function Header()
    	{
     
        //Logo
        $this->Image('images/logo.jpg',10,10,20);//position abscisse, position ordonnée, largeur
        //Police de caractère
    	$this->AddFont('PoliceNormal','',$nom_PoliceNormal,true);
    	$this->AddFont('PoliceGras','',$nom_PoliceGras,true);
     
     
    	$id_reservation = $_GET['id_reservation'];	
    	$rqsql = "SELECT biduletruc WHERE id_reservation='$id_reservation' ";
     
    	suite du code du header
     
    	}
     
     } // fin de la class
     
     suite du code principal
     
    ?>
    si on regarde la function Header(), j'arrive à récupérer des variables "externes" via des $_GET. Seulement voilà, je ne peux pas procéder ainsi pour toutes les variables.
    Lorsque j'exécute le code, j'ai des messages d'erreur du type Notice: Undefined variable: nom_PoliceNormal in. Ici je n'arrive pas à transmettre les valeurs $nom_PoliceNormal et $nom_PoliceGras dans la fonction header.

    Je cherche donc à savoir comment transmettre des variables dans la function Header() qui appartient à une Class, variables qui auront été définit en dehors de la class.

    Comment faire, j'ai essayé en vain tout un tas de truc, mais rien de fonctionne

    Par avance un grand merci.

    tavar

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    dans un premier temps, dans la classe PDF8 créez les propriétés correspondantes aux variables en question.

    Passez ces variables au constructeur de la classe PDF8.

    S'il n'existe pas, créez le (en n'oubliant pas de faire appel au constructeur parent dans le constructeur de PDF8).

    Enfin, dans le constructeur, sauvegardez ces variables dans les propriétés de l'instance. Ces valeurs seront alors disponibles dans les méthodes de votre classe.

    HTH.

  3. #3
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    Bonjour Agnello Fabrice,

    Tout d'abord merci pour votre réponse.

    Toutefois, pourriez vous me donner un exemple pour
    $nom_PoliceNormal.

    Je comprends avec votre réponse que je dois me plonger sérieusement dans ces notions de class. Malheureusement, à la minute où j'écris, je suis pris par le temps.

    Par avance merci beaucoup,

    tavar

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    un exemple court :

    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
     
    $nom_PoliceNormal='DejaVuSans.ttf'; 
     
    class PDF8 extends TFPDF
    {
      protected $fNomPoliceNormal;
      public __construct($policeNormal){
         parent::construct();
         $this->fNomPoliceNormal = $policeNormal;
         ....
      }
      ...
      function Header(){
         ....
         $this->AddFont('PoliceNormal','',$this->fNomPoliceNormal,true);
         ....
      } 
    }
     
    ...
     
    $pdf = new PDF8($nom_PoliceNormal);
     
    ...

  5. #5
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    Merci.

    Je constate qu'il me manque trop de notions pour modifier ainsi tout le code.
    Je conserve ce sujet pour y replonger dès que possible.
    Pour l'heure, je vais utiliser une méthode de bidouille :

    je récupère mes variables dans le code principal, je les stocke aussi dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_GET
     
    $_GET['nom_PoliceNormal'] = $nom_PoliceNormal;
    $_GET['nom_PoliceGras'] = $nom_PoliceGras;
    et j'appelle dans la partie class les variables via les $_GET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->AddFont('PoliceNormal','',$_GET['nom_PoliceNormal'],true);
    $this->AddFont('PoliceGras','',$_GET['nom_PoliceGras'],true);
    A priori, cela fonctionne, ce n'est pas vraiment propre, mais ...

    en tout cas merci

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    je vous confirme que c'est tout sauf propre.

    Je ne sais pas dans quel contexte vous développez, mais si c'est dans le cadre professionnel (ceci dit quel que soit le cadre, ce qui suit reste valide), je ne saurais que trop vous recommander de "poser les valises" rapidement et d'entreprendre de vous former au concept des classes en PHP (sans forcément entrer dans tout le formalisme objet, bien que ce devrait être un pré-requis pour tout bien appréhender).

    Il doit certainement exister sur developpez des tutoriels adaptés.

    Vous verriez du coup qu'il existe des solutions élégantes et efficaces.

Discussions similaires

  1. [POO] Variable dans une classe
    Par Space Cowboy dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2007, 20h23
  2. Ajout d'une variable dans une class fait planter
    Par Geoff-sk8 dans le forum C++
    Réponses: 4
    Dernier message: 11/10/2006, 14h27
  3. Passage de variables dans une fonction
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/07/2006, 17h49
  4. Réponses: 2
    Dernier message: 17/12/2005, 20h52
  5. Passage de variable dans une requête
    Par zestrellita dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/09/2004, 13h27

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