8797 sujets

Développement web côté serveur, CMS

Bonjour les gens! Smiley ravi

Je reprend une vieille discussion dont le sujet a été clos. J'en profite pour signaler aux webmaster qu'il serait vraiment très très plus mieux de ne pas laisser la possibilité de répondre sur un sujet clos (bouton répondre visible, et possibilité d'écrire) pour indiquer, une fois le long message écrit et relu, puis envoyé, "erreur le sujet est clos". Quand on ne pense pas à faire un CTRL-A CTRL-C avant d'envoyer (j'ai le réflexe maintenant), et qu'on a passé une demi heure à écrire, on doit avoir sacrément les boules, étant donné que "back" ne ramène pas forcément le texte...

Le sujet concerné, auquel je répond ici, est à cette adresse:
http://forum.alsacreations.com/topic-20-21355-1-Resolu-Methode-statique-ET-abstraite.html

Toute cette discussion à propos de la viabilité objet des méthodes abstraites et statiques est bien beau, mais malheureusement, il semble ne pas proposer de solution. Megasquall cependant, apporte des éléments de réponse, mais pour autant il reste des problèmes.

Je suis confronté à un de ces problèmes, et je vais essayer de le détailler ici, vous me direz si vous pensez qu'il existe des solutions sans "abstract static".

Pour chaque table de ma BDD, j'ai deux classes: une dynamique, qui est vouée à être instanciée pour chaque ligne récupérée de la table, et une statique, sorte de boite à outils qui permet de travailler sur la table elle-même. Je ne m'intéresse qu'à la deuxième, la statique. Les connaisseurs auront reconnu l'inspiration Symfonyesque du procédé.

Chaque table possède ses propres champs et son propre nom de table, infos que je stocke dans la classe statique bien entendu, en tant qu'attributs statiques. Je pourrais faire une classe par table et ne plus en parler, merci au revoir. Cependant, il s'avère qu'en dehors des infos précédemment citées, tout le fonctionnement de ces classes est identique à 90%! En bon programmeur, je choisi de créer une classe mère, abstraite, qui contiendra toute la mécanique commune. C'est là que commence mes problèmes: comment faire travailler la classe mère sur des données statiques des classes filles? Puisque les attributs abstraits n'existent pas, il suffit de faire des getters:
abstract protected static getFieldList();

Puis on définit le code de cette méthode dans la classe fille. Ainsi, la classe mère appelle les getters qui en fait renvoient les données de la classe fille référencée par l'appel:

classeFille::doSelect()

fera référence à
public static doSelect() { }

contenu dans la classe mère

Je ne vois pas, dans mon exemple, comment me passer de abstrait et statique! Il me faut bien une méthode statique car les méthodes sont statiques, et pourtant, alors que la classe mère doit connaitre les getters, ce sont les classes filles qui doivent les définir, donc abstraite!

Voilà l'exemple que je peux fournir pour alimenter le débat Smiley langue

Bonne journée à tous, et à bientôt!
Administrateur
Ninj a écrit :
J'en profite pour signaler aux webmaster qu'il serait vraiment très très plus mieux de ne pas laisser la possibilité de répondre sur un sujet clos (bouton répondre visible, et possibilité d'écrire) pour indiquer, une fois le long message écrit et relu, puis envoyé, "erreur le sujet est clos".


le bouton "sujet clos" apparaît bien ; cependant s'il est fermé pendant la rédaction, il n'y a pas de notification (sauf en ajoutant une grosse couche d'Ajax).
Bonjour dew.

Le sujet, qui avait un an, n'a certainement pas été fermé à 4h du matin pile justement au moment où j'écrivais, ce serait un impressionnant cas de coïncidence (mais ça reste possible bien entendu). Cependant, il s'avère que je n'étais pas connecté au moment où je suis arrivé, j'ai juste cliqué sur "Répondre" et il m'a présenté la page de réponse avec en haut Login et MDP. Peut-être est-ce la raison (pas loggué) du bug?

Bonne journée dew!

Edit: Je viens de retourner sur la page que je donne en lien dans mon premier message, cette fois en étant connecté. je peux toujours répondre au sujet, je ne vois nul part qu'il est clos, et seulement après avoir envoyer, je vois "Erreur: sujet clos". Je ne sais pas si ça n'arrive qu'à moi, mais là je suis sûr du problème Smiley rolleyes
Modifié par Ninj (22 May 2008 - 14:04)
(Felipe qui utilise son multi)

Yop,

avec mon multi simple membre j'ai la même chose. Mais pourtant dew avait fait le nécessaire il y a quelques temps Smiley nut