|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité régulier
![]() Développeur Web Inscription : novembre 2011 Messages : 7 ![]() |
Bonjour a tous,
voila sans plus attendre mon problème. Je travaille sur un site qui va servir a ressencer les votes d'utilisateurs au sujet de fichiers .doc . Quand je me suis lancer dans ce projet j'ai tout de suite commence a reflechir en poo. J'ai commence par faire un petit diagrame uml pour representer les principales classes. UML simplifie du projet Voila en gros comment ca fonctionne : pour chaque classe list on a une classe associee et lors de l'instanciation de la classe list on va aller chercher dans la bdd toute les donnees et pour chaque entree on va instancier la classe "non liste" et l'ajoutee a la liste. Le probleme c'est la vitesse de chargement des pages. J'ai une page par exemple ou je ressence tout les fichier et pour chaque fichier je ressence le vote et le commentaire de chaque utilisateur. Cette page ave ma poo se charger en 10sec environs et sans en 2 sec environs. Sans poo je veux dire en mettant directement les requettes dans la page. Je met une partie du code de ces deux pages : Code avec la poo Code :
Code :
Liste Code :
Code :
|
||||||||
|
|
00
|
|
|
#2 |
![]() ![]() Développeur PHP & Architecte logiciel Inscription : mars 2003 Messages : 562 ![]() |
Rien a voir avec la POO
![]() Tu instancie n fois PDO, avec à chaque fois une nouvelle connexion vers ta base de données, donc évidemment tu as un goulot d'étranglement... De plus si tu as vraiment des soucis de perf, enlève tes "Select *", exploite PDO (requêtes préparées...). Une fois que tu seras bon de ce côté là, là tu pourras regarder du côté de PHP. Et avant ça je te conseille fortement de suivre quelques cours sur la poo. Le code que tu indique "avec poo" est en réalité du procédural ; Programmer Objet ne consiste pas à utiliser le mot "class" mais à penser ton code de manière Objet. Tu trouveras ce qu'il te faut ici : http://php.developpez.com/cours/ Pour info je bosse sur des applications avec des milliers d'objets, il n'y a aucun problème. Rassure toi, le moteur Objet de PHP est très performant Bon courage !
__________________
Zend PHP Certified Engineer tutoriels : tutos PHP, Web & SEO blog : blog.lepine.pro membre de l'AFUP (Association des Utilisateurs de PHP) |
|
20
|
|
|
#3 | ||
|
Invité régulier
![]() Développeur Web Inscription : novembre 2011 Messages : 7 ![]() |
Merci pour ta réponse.
Et oui je me doute bien que j'ai encore pas mal de boulot. Pour l'instanciation de pdo j'utilise une classe que j'ai cree et qui herite de pdo dans laquelle la connexion est stokee dans une variable statique, je pensais que du coup je n'avais pas de probleme d'instanciation multiple. Je te met le code : Code :
Pour en revenir a ma question de vitesse de chargement, c'est possible que ca soit causer par l'instanciation de PDO? Meme avec la variable statique? En ce qui concerne les requettes prepaprees je vais les mettre en place pour voir si il y a du changement. edit : pour les requetes preparees, dans les classes liste je ne fais qu'une requete dans le constructeur pour recuperer tout les champs (j'ai vraiment besoin du SELECT * d'ailleurs) donc la requete preparee n'apporterai rien ici il me semble. |
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2011 Messages : 7 ![]() |
Bon j'ai revu toute mes classes pour supprimer les instanciation multiple de la connection a la bdd en passant en parametre au constructeur une instance qui sert pour toute la page.
Des 10 sec de chanrgement je suis passe a un peu moins de 2sec. Donc probleme resolu. Merci pour votre aide et pour le prochain projet je j'ai bosser mes concept d'objet (si le client me laisse le temps). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com