Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
903 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  prob acces a une methode d'une classe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

prob acces a une methode d'une classe

n°1158981
jokari34
Posté le 25-07-2005 à 13:19:35  profilanswer
 

j'ai les classes suivantes :  
 
classe mère 'config' avec la methode getTitre().
 
classe fille 'controleur'
classe fille 'identite'
 
probleme: 'controleur' accede bien a getTitre(), mais pas 'identite'
 
vous faut il le code ?

mood
Publicité
Posté le 25-07-2005 à 13:19:35  profilanswer
 

n°1158982
Ayuget
R.oger
Posté le 25-07-2005 à 13:23:09  profilanswer
 

PHP ne gère pas les héritages multiples.
Enfin je sais pas si j'ai bien compris ton truc, balance le code pour voir.

n°1158983
sielfried
Posté le 25-07-2005 à 13:25:56  profilanswer
 

Ca a pas l'air d'être de l'héritage multiple, mais fait voir ton code oui, paskeu là...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1158984
jokari34
Posté le 25-07-2005 à 13:27:13  profilanswer
 

laisse tomber ma description, voici des extraits :
 

Code :
  1. class config {}
  2. class controleur_Generique extends config {}
  3. class controleur_Identification extends controleur_Generique {}
  4. class Template extends controleur_Generique {}


 
plusieurs classes filles ne peuvent pas heriter d'une classe superieure, elle meme heritant d'une classe mere ?
 
dans mes tests,  
'controleur_Identification' a acces a la methode getTitre()
'Template' n'y a pas acces.


Message édité par jokari34 le 25-07-2005 à 13:29:01
n°1158987
sielfried
Posté le 25-07-2005 à 13:28:39  profilanswer
 

Ben si y'a pas de raison.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1158989
sielfried
Posté le 25-07-2005 à 13:31:51  profilanswer
 

Code :
  1. class config {
  2. public function getTitre() { return 'blabla'; }
  3. }
  4. class controleur_Generique extends config {}
  5. class controleur_Identification extends controleur_Generique {}
  6. class Template extends controleur_Generique {}
  7. $a = new Template();
  8. echo $a->getTitre();


 
Affiche "blabla".


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1158995
jokari34
Posté le 25-07-2005 à 13:39:21  profilanswer
 

ben apparement si  
faut il ajouter public devant la fonction ?

n°1158997
sielfried
Posté le 25-07-2005 à 13:40:19  profilanswer
 

Faut qu'elle soit protected au minimum.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159000
sielfried
Posté le 25-07-2005 à 13:41:59  profilanswer
 

Enfin dans mon exemple faut qu'elle soit public, mais si tu veux l'utiliser dans Template faut qu'elle soit au moins protected.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159005
jokari34
Posté le 25-07-2005 à 13:45:14  profilanswer
 

il est possible aussi que mon code soit pas terrible
je peux vous montrer tout le code si vous voulez

mood
Publicité
Posté le 25-07-2005 à 13:45:14  profilanswer
 

n°1159009
sielfried
Posté le 25-07-2005 à 13:46:21  profilanswer
 
n°1159017
jokari34
Posté le 25-07-2005 à 13:53:45  profilanswer
 

en fait je bosse la POO (je suis pas ce qu'on peut dire 'calé' la dedans. Jusqu'à present j'etais 'full procedural'
 
voici les codes. chaque classe est dans un fichier.
 
 
 
classe config

Code :
  1. <?php
  2. class config {
  3. /*******************************************************************  
  4. /*  cette classe gère les variables d'environnement  
  5. ********************************************************************/
  6. var  $__SITE_URL ;       // URL HTTP de la racine du site
  7. var $__SITE_PATH ;      // URL système de la racine du site
  8. var $__SITE_TITRE;      // Titre du site (<title> )
  9.     // Constructeur de la classe    ------------------------------------------------
  10.     function __construct () {
  11.        
  12.         $this->setSiteUrl();
  13.         $this->setSitePath();
  14.         $this->setSiteTitre();
  15.     }
  16.     // Getter et Setter du SITE URL    ---------------------------------------------
  17.     function setSiteUrl() {
  18.        
  19.         $this->__SITE_URL   = "http://localhost/VideoFutur";
  20.     }
  21.     public function getSiteUrl() {
  22.      
  23.         return $this->__SITE_URL;
  24.     }
  25.     // Getter et Setter du SITE PATH    ---------------------------------------------
  26.     function setSitePath() {
  27.        
  28.         $this->__SITE_PATH = "i:/Projets_Internet/Projets/PHPsites/VideoFutur"  ;     
  29.     }
  30.     function getSitePath() {
  31.        
  32.         return $this->__SITE_PATH;
  33.     }
  34.     // Getter et Setter du SITE TITRE    --------------------------------------------
  35.    
  36.     function setSiteTitre() {
  37.        
  38.         $this->__SITE_TITRE = "Video Futur - Intranet"; 
  39.     }
  40.     function getSiteTitre() {
  41.        
  42.         return $this->__SITE_TITRE; 
  43.     }
  44. }
  45. ?>


 
classe controleur_Generique

Code :
  1. <?php
  2. require_once("i:/Projets_Internet/Projets/PHPsites/VideoFutur/Config/config.php" );
  3. class controleur_Generique extends config{
  4.     private $evenement_url;     // $evenement utilisateur
  5.     private $parametre;         // liste des paramètres du site
  6.        
  7.     public function __construct() {
  8.    
  9.     parent::__construct();
  10.    
  11.     }
  12.    
  13.      function url() {
  14.         echo "URL : ".$this->getSiteUrl();
  15.     }
  16.    
  17.     function setParametre($nom_param, $valeur_param) {
  18.        
  19.         $this->parametre[$nom_param]= $valeur_param   ;
  20.     }
  21.    
  22.     function getParametre($nom_param) {
  23.        
  24.         return $this->parametre[$nom_param]; 
  25.     }   
  26.     // verifie si la session utilisateur existe ---------------------------------------
  27.    
  28.     function getReponseSession() {
  29.            
  30.         if ( isset($_SESSION['ID_user']) && isset($_SESSION['ID_magasin']) ) {
  31.    
  32.             return true;           
  33.         }
  34.        
  35.         else {
  36.        
  37.             return false;         
  38.         }
  39.        
  40.    
  41.     }
  42.    
  43.     // mémorisation  de l'évênement de formulaire -------------------------------------
  44.     function setEvenementURL() {
  45.    
  46.         $this->evenement_url = $_REQUEST['user_event'];
  47.     }
  48.     // renvoit l'évênement de formulaire -----------------------------------------------
  49.     function getEvenementURL() {
  50.    
  51.         return $this->evenement_url;
  52.     }
  53.    
  54.     // crée la liste générique des pages du template  ----------------------------------
  55.    
  56.     function setListePages () {
  57.    
  58.         $this->setParametre("page_zone_logo","inc_logo.php" );   
  59.         $this->setParametre("page_zone_header","inc_header.php" );
  60.         $this->setParametre("page_zone_menu","inc_menu.php" );
  61.     }
  62.    
  63.  
  64. }
  65. ?>


 
classe controleur_Identification  

Code :
  1. <?php
  2.     require_once("controleur_Generique.php" );
  3.     require_once("../Classes/cls_Template.php" );
  4. class controleur_Identification extends controleur_Generique {
  5.     private $my_template ;
  6.    
  7.    
  8.     public function construct() {
  9.     }   
  10.    
  11.    
  12.     function CreerTemplate() {
  13.    
  14.         $this->my_template = new Template($this->getparametre("page_zone_logo" ), $this->getParametre("page_zone_header" ), $this->getParametre("page_zone_menu" ));
  15.         $this->my_template->URL();
  16.     }
  17.     function AfficherTemplate() {
  18.        
  19.        
  20.         $this->my_template->afficher(); 
  21.     }
  22. }
  23. $ctrl = new Template();
  24. echo $ctrl->getSiteUrl();
  25. //$ctrl->CreerTemplate();
  26. //$ctrl->AfficherTemplate();
  27.    
  28. ?>


 
classe Template

Code :
  1. <?php
  2. class Template extends controleur_Generique {
  3.    
  4.    
  5.     private $zone_logo;
  6.     private $zone_header;
  7.     private $zone_menu;
  8.        
  9.    
  10.     public function __construct($une_zone_logo="", $une_zone_header="", $une_zone_menu="" ) {
  11.      
  12.        
  13.         $this->setZoneLogo($une_zone_logo);
  14.         $this->setZoneheader($une_zone_header);
  15.         $this->setZoneMenu($une_zone_menu);
  16.      
  17.     } 
  18.    
  19.    
  20.    
  21.     function setZoneLogo($une_zone_logo) {
  22.    
  23.         $this->zone_logo = une_zone_logo;           
  24.     }
  25.    
  26.     function getZoneLogo() {
  27.        
  28.         return $this->zone_logo;
  29.     }
  30.    
  31.    
  32.     function setZoneheader($une_zone_header) {
  33.    
  34.         $this->zone_header = $une_zone_header;       
  35.     }
  36.    
  37.     function getZoneHeader() {
  38.    
  39.         return $this->zone_header;
  40.     }
  41.    
  42.     function setZoneMenu($une_zone_menu) {
  43.    
  44.         $this->zone_menu = $une_zone_menu;
  45.     }
  46.     function getZoneMenu() {
  47.        
  48.         return $this->zone_menu;
  49.     }
  50.     function setZoneVue($une_zone_vue) {
  51.    
  52.         $this->zone_vue = $une_zone_vue;
  53.     }
  54.     function getZoneVue() {
  55.        
  56.         return $this->zone_vue;
  57.     }
  58.     function afficher() {
  59.    
  60.         include($this->getSiteUrl()."/Templates/Template_site.php" );
  61.     }
  62.     function url() {
  63.         echo "URL : ".$this->getSiteUrl();
  64.     }
  65. }
  66. ?>

n°1159019
sielfried
Posté le 25-07-2005 à 13:57:56  profilanswer
 

Bon et c'est où que ça plantouille ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159037
jokari34
Posté le 25-07-2005 à 14:20:58  profilanswer
 

le code tu le trouve bon ?
 
le coe pante ici :
 
$ctrl = new Template();  
echo $ctrl->getSiteUrl();  
 
en fait getSiteUrl() me retourne rien.

n°1159113
stb
Posté le 25-07-2005 à 15:20:24  profilanswer
 

tiens ce nom me rappel des énoncés http://localhost/VideoFutur ^^
tu srais pas l'upmc ?

n°1159401
jokari34
Posté le 25-07-2005 à 19:44:25  profilanswer
 

ah non
c juste un nom que j'ai trouvé comme pour créer un projet perso

n°1159496
sielfried
Posté le 25-07-2005 à 20:45:02  profilanswer
 

jokari34 a écrit :

le code tu le trouve bon ?
 
le coe pante ici :
 
$ctrl = new Template();  
echo $ctrl->getSiteUrl();  
 
en fait getSiteUrl() me retourne rien.


 
Ah ben forcément, $__SITE_URL n'a aucune valeur si tu fais pas un setSiteUrl() avant. Au passage ça a l'air bien bizarre comme set*... [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159506
jokari34
Posté le 25-07-2005 à 20:54:46  profilanswer
 

je crois que je vais un peu trop vite dans l'apprentissage
je vais faire un truc moins compliqué
au fait quelqu'un connait le modele MVC (design pattern) ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  prob acces a une methode d'une classe

 

Sujets relatifs
autoriser accès à une page avec paswword dans base accessUpload de gros fichiers sans acces au FTP
Upload de gros fichiers sans acces au FTPprob comptage enregistrements SQL
Accès sécurisé > Besoin d'avisProb mysql en C avec INSERT
Changer une classe d'un objet input [Résolu]SWT/AWT et la classe List
Fonction qui récup tous les paramètres d'une méthode ?Est ce une bonne methode que de faire ca ?
Plus de sujets relatifs à : prob acces a une methode d'une classe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR