Probleme heritage en php
clinou44
Messages postés
10
Statut
Membre
-
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.
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:
- Probleme heritage en php
- Easy php - Télécharger - Divers Web & Internet
- Que du fake formate héritage ✓ - Forum Vos droits sur internet
- Maison héritage canapé avis - Forum Vos droits sur internet
- Expert php pinterest - Télécharger - Langages
- Template et heritage ✓ - Forum Programmation
1 réponse
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 :
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 :
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 :
Tu es obligé de déclarer que la classe est abstraite également.
3- Pour instancier un objet, utilise l'opérateur new :
C'est tout ! Mais j'imagine que tu auras bientôt d'autres questions ;)
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 ;)
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
encore une autre question,
comment recuperer une valeur dans une liste deroulante et l'inserer dans un champ d'une base de donnees???????
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).
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