Une classe pour toute la navigation

dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011 - 1 sept. 2005 à 18:38
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 3 sept. 2005 à 09:26
Salut

Je suis en train de faire une classe dans un fichier que j'inclue dans
tout les fichier qui en ont besoin. Seulement je veux créer une seule
variable de cette classe pour toute la navigation.

C'est à dire que je remplie ma classe avec différente page....

Est ce que $mavar = new maClass; dans le fichier que j'inclue répond à ma question ?

15 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 sept. 2005 à 18:47
Salut,



quelle est la question en fait ?



lorsque tu instancies une classe bah oui tu fais ça



$variable = new classe;



ensuite $variable->fonction();



ou encore $variable->variable='machin';

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 sept. 2005 à 19:05
Salut,



En fait ton idéal serait que par la simple application d'une commande
d'inclusion en tête de tes scripts PHP, l'instanciation de la classe
déclarée dans le fichier inclue soit automatique. Cet idéal peut être
atteint!





Autrement dit:

<?php //maClasse.php

class maClasse{

/* un petit pouet pour le plaisir */

};

$maVar = new maClasse();

?>



<?php // index.php

include "maClasse.php";

echo get_class($maVar);

?>



Qu'est-ce qui va s'afficher ???







Si tu réponds "maClasse", tu as gagné ;)



Bye
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 sept. 2005 à 19:07
"maClasse"

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 sept. 2005 à 19:07
heu j'ai gagné quoi ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 sept. 2005 à 19:15
Deux gros bisous



(même si c'est as de jeu, t'es trop fort toi!)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 sept. 2005 à 19:18
Seulement si t'es une fille les bisous mdr ^^

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
1 sept. 2005 à 22:20
ok... vous n'avez pas forcément compris ma demande.
maclasse.php contient ma classe.
index.php inclue maclasse.php et modifie la variable de la classe
read.php include maclasse.php et affiche la variable de la classe
ça marche à tout les coups ou il faut faire quelque chose ?
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
1 sept. 2005 à 22:34
Salut,



A pardon! Effectivement on avait pas tout saisie (enfin moi en fait)



Bon il faut utiliser les sessions... et les fonctions serialize et
unserialize... et peut_être le fonctions magique __sleep et __wakeup...



Si ce que tu veux est de retrouver la même instance de ta classe entre index.php et read.php.



Là, il faut mieux aller voir sur
PHP: Hypertext Preprocessor Pour te renseigner sur les func que je viend de siter. Ce genre de problème représente un chapitre complet de PHP



(Mais PHP est trés facile ;)





A+
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 10:13
Hello,



à moins que index.php n'inclue read.php.

Bref, que ton site fonctionne en pseudo frames.

Une technique courament utilisée, qui vaut ce qu'elle vaut, et la suivante :

index.php inclue avec la technique des pseudo frames toutes les pages
(tous les modules) de ton site. Elle inclue aussi une page globVars.php
dans laquelle sont instanciées toutes tes classes (et éventuellement
tes variables et constantes que tu veux globales).

Sinon en effet, un objet est sujet à la portée entre les pages, tout comme une variable basique.
0
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
2 sept. 2005 à 17:30
Donc si je veux que ma classe soit accessible depuis toute les pages en
restant la même, j'inclue la page où elle est délcaré dans toute les
autres pages visitable par l'internaute.
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
2 sept. 2005 à 18:18
Salut,



Te casse pas trop le bulbe!!!

Voici comment je fait mes script :



Un fichier nommé "includes.php" qui contient toutes les déclaration est ce qu'il faudra faire de toute façon!!!!

<?php

session_start(); // ça c'est fait



include "classe1.php";

include "classe2.php"; // ça, c'est fait aussi



if(isset($_SESSION['xyz'])) {

$xyz = unserialize($_SESSION['xyz']);

if(get_class($xyz)!="object") {

$xyz = new classeXYZ;

}

} else {

$xyz = new classeXYZ;

} // ça, c'est ce que tu veux faire ...



// Et puis tout ce qu'il faudra faire

// Il ne faut pas remettre au bas du script ce que l'on peut faire en haut

?>



Et puis au début de chaque script, tu poses ton :

include_once("includes.php");

voir même :

required_once("includes.php");



Et tu te fais plus chier!!!!!!! Tu sais où sont les choses... Par contre il ne faut pas compromettre la sécurité de ton site!



Voili, c'est ma méthode de bourrin, et c'est du bonheur;)

A+
0
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
3 sept. 2005 à 01:54
Si je comprend bien ton code, tu enregistres la classe dans les sessions ?
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
3 sept. 2005 à 07:44
Si tu parles de l'Objet (L'instance de la classe), et non de la classe, c'est ça.



En fait la fonction serialize "transforme" ton objet en un chaîne de
caractères, que tu peux stocker où bon te semble (Variable de session,
cookie, base de données, ...).

En passant cette chaîne dans unserialize, tu vas recréer l'object et lui réinsuflé les valeurs concervées dans la chaîne.

(il faut toutefois que la classe soit préalablement déclarée).



Pour en savoir plus :
PHP: Hypertext Preprocessor

Et tu vas voir les fonctions : serialize, unserialize, __sleep,
__wakeup! (Mais je l'ai déjà dis) Il y'a des exemples facilent à
comprendre !!!
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
3 sept. 2005 à 07:45
Si tu parles de la classe : il y'a un gros problème de vocabulaire ...!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 sept. 2005 à 09:26
Oui, c'est très pratique, je l'utilise souvent aussi. Faut pas que tu
aies trop d'objets à trimballer, c'est tout, sinon ça devient galère...
0
Rejoignez-nous