Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3600 connectés 

 


Dernière réponse
Sujet : forum php objet?
speedyop non du tout :D je veut me faire plaisir en programmant et en fesant klk chose que je n'ai pas l'habitude de faire, reflechir avant d'agir :D
 
car ca revient un peu a ca la conception objet, meme si la modification de l'objet est meme plus facile que la modification d'un code...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
speedyop non du tout :D je veut me faire plaisir en programmant et en fesant klk chose que je n'ai pas l'habitude de faire, reflechir avant d'agir :D
 
car ca revient un peu a ca la conception objet, meme si la modification de l'objet est meme plus facile que la modification d'un code...
skylight en gros tu veux rendre quelques morceaux de ton forum polyvalents  :??:
speedyop

skylight a écrit a écrit :

:bounce:  
 
dites j'ai pas bien compris votre histoire d'objets ...  :??:  




ben c'etait essayer d'adopter une demarche de conception de site (dans ce cas precis un forum) plus propres, plus reutilisable, plus structuré, plus adaptable, plus pro...
Je pense que la plupart des developpeurs web php qui ont participé a ce topic cherchent quelques chose de nouveaux, pour accroitre leur connaissance et leur compétences.
La programmation objet est un sujete a bcp de controverse, en effet c'est un paradoxe de vouloir utiliser une structure sachant que son temps de developpement sera plus long, dans le monde du developpement oueb, ou la rapidité de developpement est un facteur majeur.
Mais comme disait l'autre:  

Citation :

"rien ne sert de courir, il faut partir a point"


 
Combien de systeme d'authentification de user avez vous developper? c'est l'interet des classe: de beau objet reutilisable.
Dasn le cas des forums c'est clair que tout ne sera pas utilisable en dehors ...D'un forum, mais de voir tout ces petits objets interagir entre eux, se marier, se remplir, se créer me donne une tel satisfaction que je ne cherche meme plus de "fausse" raison de les utiliser :D, j'en suis tombé amoureux et c'est pour moi une solution progressive d'aborder le monde de la vrai programmation: la ou ca cause C++, Java, pointeur, application, compilation et tout ca qui pour l'instant reste hors de porté d'un developpeur web  :sweat:

FLY LM

skylight a écrit a écrit :

:bounce:  
 
dites j'ai pas bien compris votre histoire d'objets ...  :??:  




 
Tu travailles trop !!! :lol: :lol:

skylight :bounce:  
 
dites j'ai pas bien compris votre histoire d'objets ...  :??:
speedyop ok en gros c'est plus efficace si mysql est surchargé de travail...bon ben on verra plus tard alors ;) sinon j'ai fait mas class de db_query... a votre avis vaut mieux ouvrir la connection qu'une seule fois et qu'elle se ferme a la fin de la page ou l'ouvrir, faire sa requette et le fermée aussitot?, d'facon vu que c'est un objet maintenant je pourrait le changer n'importe kan ;)
gizmo

speedyop a écrit a écrit :

et c plus efficace?  




 
c'est ce que semble dire la majorité des sites que j'ai vu. Mais je sais pas testé véritablement, vu que la charge sur mon forum se limite a... moi!

speedyop et c plus efficace?
gizmo

skylight a écrit a écrit :

 
 
oui mais ca ouvre autant de connexion que tu l'appelles ...
car mon connect je l'inclus a chaque page ...
je m'imagine pas faire un pconnect a chaque page  




 
non, le pconnect garde essaye de trouver une connexion déja active, ce qui entraine les petit délais dont parle ethernal. Et ce n'est que s'il n'en trouve pas qu'il en créer une. Donc ca permet d'une part de limiter les connexions d'un même utilisateur et d'autre part de partager des connexions entre plusieurs personnes.

skylight

gizmo a écrit a écrit :

pconnect ferme la connexion automatiquement après 10 minutes d'inactivité, par défaut.  




 
oui mais ca ouvre autant de connexion que tu l'appelles ...
car mon connect je l'inclus a chaque page ...
je m'imagine pas faire un pconnect a chaque page

ethernal bizarre, il semblerait qu'avec un pconnect le temps d'affichage soit plus long de 0.002 -0.003 secondes (écart constant, quel que soit le nb d'enregs)
 
une raison particulière ?

 

[edtdd]--Message édité par ethernal--[/edtdd]

gizmo pconnect ferme la connexion automatiquement après 10 minutes d'inactivité, par défaut.
speedyop parceque javais pas compris  :jap:
ethernal

speedyop a écrit a écrit :

bah j'ai rien dit alors t'as deja le champs en base  




 
heu oui c'est le "nbposts" pas le "nbmessages", sorry ;)
thx  :jap:  
 
mais pq tu m'avais répondu ça à mon problème d'affichage par page ?

speedyop bah j'ai rien dit alors t'as deja le champs en base
ethernal

speedyop a écrit a écrit :

ben actuellement explique moi ta methode pour optenir le nombre de message dans une discussion et le nombre de message dans un forum...  




//---------------------------------------
//constructeur de la classe forum
function Forum($pForumID="" ){
  $query= "select id,nbmessages,... from Forums where id='$pForumID'";
  ...
  $this->nbMessages= $result->nbmessages;
}
//---------------------------------------
 
$forum->getNbMessages();
 
idem pour avoir le nombre de messages dans un topic
 
qd on insère un message dans la bd il incrémente le nombre de messages dans la table forum et le nombre de message dans le topic.

speedyop ben actuellement explique moi ta methode pour optenir le nombre de message dans une discussion et le nombre de message dans un forum...
ethernal

speedyop a écrit a écrit :

le plus simple est de mettre un champ supplementaire nbreponse, que tu update a chaque devalidation, insertion, effacement...(pas un update +1 -1 un update nbreponse=(select count...))...  
 
ca commence a faire des tables moches mais l'espace etant moins un probleme que la performance...je pense qu'un base mysql ne supporte pas trop de connection alors moins y'a de requette...  
 
de meme dans la table forum t'as des champ nbmessage [sum(nbmessage+1) where refmessage=0] et nbsujet [count(id) where refmessage=0]  




 
je comprends pas :(
 

skylight a écrit a écrit :

autre chose : j'aimerais bien utiliser pconnect au lieu de connect tout court .... mais quand utiliser mysql_close ?
car je vais pas le faire a chaque fin de page, ca serait inutile !  




 
le mysql_close se fait automatiquement à la fin de chaque page je pense

skylight autre chose : j'aimerais bien utiliser pconnect au lieu de connect tout court .... mais quand utiliser mysql_close ?
car je vais pas le faire a chaque fin de page, ca serait inutile !
speedyop

ethernal a écrit a écrit :

 
 
humça me semble aussi la seule solution, mais j'aime pas les globales ... :( enfin faut faire des sacrifices
 
une idée pour intégrer les n° pages dans la classe qui liste des topics/messages (je sais le faire, mais je me demande quel attribut ajouter à ces classes ?)
 
bêtement un attribut numpage  ? mais je dois le passer à la classe aussi pour savoir ou elle en est...
sans compter encore une fois que dans ma table (et ma classe config) j'ai le nombre d'enreg/topic par page qui sont défini...
donc elle doit encore en global ...  




 
le plus simple est de mettre un champ supplementaire nbreponse, que tu update a chaque devalidation, insertion, effacement...(pas un update +1 -1 un update nbreponse=(select count...))...
 
ca commence a faire des tables moches mais l'espace etant moins un probleme que la performance...je pense qu'un base mysql ne supporte pas trop de connection alors moins y'a de requette...
 
de meme dans la table forum t'as des champ nbmessage [sum(nbmessage+1) where refmessage=0] et nbsujet [count(id) where refmessage=0]

gizmo

skylight a écrit a écrit :

 
 
c'est ce que j'avai remarké aussi
les drapeaux disparaissent aux fur et a mesure ...
 
au fait tu a jeté un oeil a mes sourceS ?  




 
pas encore eu le temps, j'avais les anciennes, avec le bug des messages fantomes, mais j'ai pas encore pris les nouvelles.

speedyop la clause limit de mysql m'a l'air tres performante, on ne prend qu'un recordset de ce que l'ont veut et pas la section d'un grand recordset qui nous interesse... et de toute facon aves un peu d'ambition le forum doit pouvoir fonctionner avec 1 000 000 de lignes de message non? ;)
ethernal

speedyop a écrit a écrit :

en variable globale...comme tu le ferait pour la configuration des connection db...  




 
humça me semble aussi la seule solution, mais j'aime pas les globales ... :( enfin faut faire des sacrifices
 
une idée pour intégrer les n° pages dans la classe qui liste des topics/messages (je sais le faire, mais je me demande quel attribut ajouter à ces classes ?)
 
bêtement un attribut numpage  ? mais je dois le passer à la classe aussi pour savoir ou elle en est...
sans compter encore une fois que dans ma table (et ma classe config) j'ai le nombre d'enreg/topic par page qui sont défini...
donc elle doit encore en global ...

 

[edtdd]--Message édité par ethernal--[/edtdd]

ethernal

speedyop a écrit a écrit :

pkoa faire 2 tables distincte pour message et sujet? mttre un champs refmessage, si a 0 c'est un sujet sinon il prends la valeur de l'id message auquel on reponds (celui du sujet par default), garder le lastmessage_id qui sert juste pour les refmessage=0 (sujet) ca sert pour faire les sujet lu ou pas : pour chaque forum on stocke dans une autre table le plus grand lastmessage_id des sujet qu'on a lu et on dans la page d'affichage des discussion on compare si il est plus grand que celui du sujet (si plus grand message, sinon message non lut...)
c'est pas le systeme de joce qui doit faire des jointures...  




 
ouaip mais alors pour afficher tes sujets tu vas les tirer d'une table de 40.000 enregs... en plus tout tes sujet/messages tu dois les stocker en type text

speedyop en variable globale...comme tu le ferait pour la configuration des connection db...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)