La Pause Café du Forum Programmation

Ben t’as qu’à travailler avec des interfaces.
Les n classes qui doivent implémenter ta méthode n’ont qu’à implémenter la même interface et tu regardes quelle classe appeler au moment de l’éxécution.

Je ne sais pas si c’est comme java, mais instanceof c’est cochon et gourmand ?

C’est un opérateur, pas une fonction donc non, c’est pas gourmand.

Bah en fait y’a une méthode (statique) que j’utilise dans plusieurs classes et j’aimerais éviter de devoir définir cette méthode dans toutes ces classes.
Je comptais créer une classe Mère dont hériteraient toutes les classes sus-citées et dans laquelle (la Mère) je mettrais cette méthode.
Mais le problème c’est que cette méthode appelle ensuite une autre méthode (elle aussi statique) se trouvant définie uniquement dans les classes filles (les sus-citées).

La méthode en question (celle que je veux caser dans la classe mère ne fait que 4 lignes. Certes c’est peu, mais tant qu’à éviter d’avoir 4 lignes identiques à plusieurs endroits :neutre:

PHP j’aime pas. Mais tant que je gagne des sous avec je continue a en faire :ane:

Ben dans ta méthode, tu fais juste un


if($monObj instanceof 'MaClasseSpecifique') {
// appel du code spécifique
}

je vois pas le problème ?

Et moi, PHP j’aime bien :slight_smile:

C’est pas vraiment propre comme façon de faire (du moins lorsqu’on connaît le polymorphisme), mais je garde ça sous le coude.
(J’ai également pensé au eval() en utilisant un variable contenant le nom de la classe fille)

Oublie la solution eval tout de suite ! :non:

Normalement tu devrais, avec un bon modèle objet, pouvoir éviter au maximum ces situations. Moi je ferais implémenter une même interface à toutes tes classes filles spécifiques et je ferais mes vérifications à l’exécution.

En fait les classes en question sont des classes de Input/Output des objets Modèles (Modèle comme dans MVC, les objets Métiers en somme) : il s’agit des classes faisant le lien entre la base de données et les objets Métiers (récupération d’un -ou de plusieurs- Article depuis la base et création de l’objet PHP Article correspondant).

La méthode (methodeP()) que je ne veux pas taper 15 fois c’est celle qui parcours une ressource MySQL issue d’un SELECT et qui, pour chaque ligne rempli un tableau d’objets Métiers qu’elle a réçu d’une autre méthode (methodeC()) qui a créé l’objet en le remplissant à l’aide du tableau retourné par le mysql_fetch_assoc() de methodeP().

protected static function methodeP($query) {
	$objArray = array();
	while($dat = mysql_fetch_assoc($query)) {
  $objArray[] = self::getDataObjectFromFetchArray($dat);
	}
	return $objArray;
}
protected static function methodeC($dat) {
	$obj = new ObjetMetier($dat['id']);
	$obj->setNom($dat['nom']);
	return $obj;
}

J’espère que ça n’est pas trop obscur (ni trop mal conçu)

Han mais need !

http://www.clubic.com/actualite-73567-inso…ner-bureau.html

:smiley:

Sans-Nom > OK.

Bon, si quelqu’un à un tutorial qui explique une méthode propre pour concevoir un site Internet (PHP et MySQL) utilisant la programmation objet pour les objets Métier et où les accès à la base de données ne sont pas cachés un peu partout dans le code je suis preneur :super:

(Marre de vouloir coder proprement et de pas trouver comment associer lisibilité du code, emplacement logique des fichiers sources et pérennité -souplesse- du site)

bah :slight_smile: tu crois que j’y arrive pas en php pourquoi? :slight_smile:

Mais là, je crois avoir trouvé le filon. J’y touche plus, c’est suffisamment stable et propre: classe dans un fichier à part (éventuellement plusieurs dans le même fichier pour des petites classes), architecture par module, et puis par packages.

Bref ça me va:)

Bonne nuit a tous !!

Dernz au passage :slight_smile:

Preumz et Dernz.

Yep :hello:

Jour J - 1 avant le départ :wink:

Et aujourd’hui je fais repas corse au taf :wink: Charcuterie, fromage explosif (à la confiture de figue :miam:) etc etc etc :smiley:

:hello:

+1
c’est pas tout de nous inviter, faut donner l’adresse :smiley:
:miam:

Monter sur la capitale pour du fromage kipu, non merci :o

Technocentre renault :smiley: On est 13 000, bon courage pour me trouver :wink:

On est relativement proches voisins avec kisscool :wink:

http://xdebug.org/
Tu le télécharges puis l’actives dans le PHP.ini en mettant ça :

zend_extension_ts='<chemin_vers_xdebug>.dll'

Et après t’installes WinCacheGrind parce que c’est dix mille fois plus convi pour lire les résultats !