Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 26/05/2011, 11h56   #1
Membre du Club
 
Avatar de tavarlindar
 
Inscription : janvier 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 238
Points : 57
Points : 57
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 :
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
__________________
Mieux vaut penser avant d'agir que d'agir en rêvant.
tavarlindar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 12h22   #2
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
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 : 76
Points : 161
Points : 161
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.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 13h02   #3
Membre du Club
 
Avatar de tavarlindar
 
Inscription : janvier 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 238
Points : 57
Points : 57
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
__________________
Mieux vaut penser avant d'agir que d'agir en rêvant.
tavarlindar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 13h10   #4
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
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 : 76
Points : 161
Points : 161
un exemple court :

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
 
$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);
 
...
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h08   #5
Membre du Club
 
Avatar de tavarlindar
 
Inscription : janvier 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 238
Points : 57
Points : 57
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 :
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 :
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
__________________
Mieux vaut penser avant d'agir que d'agir en rêvant.
tavarlindar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h50   #6
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
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 : 76
Points : 161
Points : 161
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.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web