8797 sujets

Développement web côté serveur, CMS

Salut tout le monde.

Juste deux petites questions auxquelles je trouve pas de réponses :

1) Soit 4 classes : ClasseMaman, ClasseFille1, ClasseFille2, AutreClasse.

Dans AutreClasse, j'ai une méthode qui a besoin des informations de ClasseMaman (qui est une classe abstraite). Et qui donc peut fonctionner aussi bien avec ClasseFille1 qu'avec ClasseFille2.

J'utilise d'habitude du TypeHinting, j'aimerais pouvoir l'utiliser ici.

Est-ce que

Class AutreClasse
{
	public static methode1(ClasseMaman $ClasseMaman)
	{
		echo "blabla";
	}
}


Va fonctionner avec ClasseFille1 ou ClasseFille2 ? Sinon, comment faire ?


--------------------------

2)
Y a-t-il moyen de globaliser un paramètre commun à plusieurs méthodes statics dans une classe qui n'a aucune raison d'avoir des arguments (vu qu'elle n'est employé qu'en static) ?

En gros, j'ai une classe ($GestionInventaire) que je n'utilise qu'avec des méthodes statiques. Elle sert en fait à charger des objets d'une autre classe ou à updater mes tables. A part que toutes ses méthodes emploient un argument commun $idPj, qui est indispensable systématiquement. (forcément, il s'agit de l'inventaire du PJ).

Est-ce qu'il y a une méthode plus propre que de passer à chaque fois l'idPj par paramètre ?


Voilà, vous avez 4 heures. Smiley lol (non, je plaisante Smiley ravi )


Merci d'avance pour vos réponses ^^
Modifié par Lothindil (12 Oct 2012 - 12:53)
Lothindil a écrit :

Est-ce que

Class AutreClasse
{
	public static methode1(ClasseMaman $ClasseMaman)
	{
		echo "blabla";
	}
}


Va fonctionner avec ClasseFille1 ou ClasseFille2 ? Sinon, comment faire ?


Le casting des paramètre revient à faire un "instanceof", donc toutes les classes héritant de prés ou de loin de ClasseMaman valideront le test

Lothindil a écrit :

Y a-t-il moyen de globaliser un paramètre commun à plusieurs méthodes statics dans une classe qui n'a aucune raison d'avoir des arguments (vu qu'elle n'est employé qu'en static) ?

En gros, j'ai une classe ($GestionInventaire) que je n'utilise qu'avec des méthodes statiques. Elle sert en fait à charger des objets d'une autre classe ou à updater mes tables. A part que toutes ses méthodes emploient un argument commun $idPj, qui est indispensable systématiquement. (forcément, il s'agit de l'inventaire du PJ).

Est-ce qu'il y a une méthode plus propre que de passer à chaque fois l'idPj par paramètre ?


Tu peut utiliser une variable global mais ce n'est pas "plus propre" a mon sens (et aussi bien moins flexible):


Class Test()
{
  public static function test()
  {
    global $test;
    echo $test;
  }
}

$test = 'blabla';

Test::test();