Obliger déclaration attribut dans classe fille

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Obliger déclaration attribut dans classe fille

par zeus » 20 juil. 2007, 10:29

Merci de ta réponse.

Si ce n'est pas possible dans le langage, je n'ai pas envie de mettre en place un fake crade qui sera bancal.
Je vais donc bien documenter et je me dit que si cet attribut n'est pas présent, ma classe va planter dès le développement, donc le développeur sera au courant ....

PS : pour ce que je viens de dire, ce n'est pas vrai dans tout les cas, mais dans mon exemple précis, c'est ce qui se passera ... ;)

par Genova » 19 juil. 2007, 18:58

Salut,
de base dans le language c'est impossible. Après il y a probablement moyen de bidouiller mais ça sera crade, par exemple si la propriété de l'enfant est publique ou protected tu peux vérifier si elle existe avec property_exists() dans le constructeur.

Obliger déclaration attribut dans classe fille

par zeus » 19 juil. 2007, 17:49

Bonjour à tous,

Je cherche à savoir comment obliger la déclaration d'un attribut dans une classe fille depuis la classe mère :!:

Je m'explique : dans un développement, j'ai une classe mere abstraite qui contient un ensemble de méthode pré-définie. Le but étant de permettre le développement de classe filles qui se concentrent sur l'aspect métier et non pas sur les méthodes communes à toutes les classes filles.

Or, dans l'une des méthodes de la classe mère, j'ai besoin d'un attribut de la classe fille.
Je voudrais, sans définir cet attribut dans la classe mère, obliger la déclaration de cet attribut dans les classes filles. L'équivalent de la déclaration d'une méthode abstraite, mais pour un attribut.

j'ai essayé les syntaxes suivantes, sans succès
class maClasse
{
	abstract protected $nom_requete;	// Un attribut ne peut être abstrait
	static protected $nom_requete;		// Non modifiable mais il est possible de ne pas le définir dans les classes fille
}
J'en déduit donc que ce que je demande ne doit pas être possible en PHP5 :?

Sans passer par une méthode qui vérifie que l'attribut est saisi, est-ce que quelqu'un à une solution "miracle"