Probleme heritage en php

clinou44 Messages postés 10 Statut Membre -  
clinou44 Messages postés 10 Statut Membre -
Bonjour,
voila je suis en train de travailler sur un petit projet en php, et je doit vous avouer que je ne maitrise pas bien ce language.
je doit suivre la norme MVC (modele, vue, controleur)
j'ai une classe mere abstraite qu'on va appeler M et deux classes filles F
1ere question : comment recuperer les attributs de la classe mere (es ce juste avec des get())
2eme question : comment definir une methode abstraite dans M et la redefinir dans F
3 eme question : comment instancier un nouveau objet de la classe F
Merci d'avance.
A voir également:

1 réponse

Groarh Messages postés 706 Statut Membre 185
 
Bonsoir,

c'est peut-être d'un cours sur la programmation objet dont tu as besoin. Mais je vais quand même répondre rapidement à tes questions.

1- Si les attributs de M sont privés, tu ne peux pas les récupérer. S'ils sont protégés, tu peux les récupérer en définissant un « accesseur » c.-à-d. un get(). Exemple :
class M {
    protected $a;
}

class F {
    public function getA() { return $this->a; }
}

Et s'ils sont publics, tu n'as pas besoin d'accesseur mais tu peux en utiliser un quand même.
Attention, car si tu déclares dans F un attribut qui a le même nom qu'un attribut de M, celui de M sera masqué. De plus, les visibilités sont classées par force :

public < protégé < privé

Tu ne peux pas masquer un attribut de M avec un attribut de F si la visibilité de celui de F est plus forte. Exemple :
class M {
    public $a;
}

class F {
    private $a; // erreur
}


2- Pour définir une méthode abstraite, il suffit d'utiliser le mot-clé abstract et ne de pas écrire le corps de la fonction :
abstract class M {
    abstract public function machin();
}

Tu es obligé de déclarer que la classe est abstraite également.

3- Pour instancier un objet, utilise l'opérateur new :
$f = new F();


C'est tout ! Mais j'imagine que tu auras bientôt d'autres questions ;)
0
clinou44 Messages postés 10 Statut Membre 3
 
merci bcp deja pour ta rapidite
j'ai pas mal avancé entre temps et comme tu l'as deviné j'ai d'autres questions (lol)
en fait es ce possible si on fait pas une calsse M abstraite est ce possible d'acceder de la classe M aux attributs de la classe F?
merci d'avance
0
Groarh Messages postés 706 Statut Membre 185
 
Non, pas en PHP.
0
clinou44 Messages postés 10 Statut Membre 3
 
re salut
encore une autre question,
comment recuperer une valeur dans une liste deroulante et l'inserer dans un champ d'une base de donnees???????
0
Groarh Messages postés 706 Statut Membre 185
 
Bonsoir,
là on est plus du tout dans le même domaine :)
On touche à trois trucs :
- les formulaires HTML
- les variables spéciales de PHP ($_POST ou $_GET)
- les requêtes SQL

Pour le formulaire, voilà un exemple simple avec balisage sémantique :
<form method="post" action="store_data.php">
  <fieldset>
    <legend>Choisir une valeur</legend>
    <label>
      Valeur :
      <select name="valeur">
        <optgroup label="fruits">
          <option value="1">pomme</option>
          <option value="2">poire</option>
          <option value="3">banane</option>
        </optgroup>
        <optgroup label="legumes">
          <option value="4">haricot</option>
          <option value="5">carotte</option>
          <option value="6">poireau</option>
        </optgroup>
          <option value="0"
                  selected="selected"
                  disabled="disabled">-</option>
      </select>
    </label>
    <label>
      <input type="submit" />
    </label>
  </fieldset>
</form>


Pour le SQL, j'ai besoin de savoir quel type de base de données tu as l'intention d'utiliser (MySQL ?) et quelle version de PHP tu as (PHP 5 permet d'utiliser les PDO).
0
clinou44 Messages postés 10 Statut Membre 3
 
oui c'est MySQL et php5,
mais en fait je suis desole ca j'ai reussi a resoudre ca aussi ,
et la j'ai un nouveau pb toujours liste deroulante et BDD
mais la c'est l'inverse je veux recuperer toutes les donnees d'une colonne d'une table et les inserer dans une liste deroulante qui elle meme est dans une "vue" comment je peut me connecter a la BDD a partir de la "vue" en sachant que ce n'est pas une classe.
la "vue" c'est un formulaire en gros car j'utilise le modele MVC (metier, vue, controleur)
merci bcp pour tes reponses
et merci d'avance pour la prochaine reponse
0