begin process at 2012 05 31 13:17:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

Quel framworks ? Quel moteur de template ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Quel framworks ? Quel moteur de template ?

mardi 16 novembre 2010 à 20:37:59 | Quel framworks ? Quel moteur de template ?

chatis

Bonjour,

Je développe un site internet de réservation de court de tennis par internet et ma version 1 est terminée. Actuellement sur le site j'ai 1500 membres qui ont un accès. Mais avec tous ces membres, je me rends compte que toutes les requêtes faites sur la BDD ralentissent le site.

Actuellement je n'utilise aucun framworks ni moteur de template. Et je me dis qu'il serait temps d'en utiliser 1 non ? Bien sûr tout mon développement est en N-Tiers (MVC) et Ajax. Mais mon problème c'est que pour afficher le tableau de réservation, chaque personne (dépend si elle est connecté ou non, si c'est un prof, un adulte, un junior) et l'heure à laquelle on se connecte, fait varier l'interaction avec le tableau. En gros chaque personne qui se connecte n'interagit pas pareil avec le tableau. L'affichage est le même mais les événements curseurs sont différents. Egalement pour afficher le tableau au complet, cela demande en moyenne (dépend le nombre de terrains) 2000 requêtes sur la base de données !! L'affichage change également à chaque nouvelle ou modification de réservation.

Mes questions sont :

- Pensez-vous qu'un moteur de template (avec ou sans cache) peut être utile pour mon cas ? Si oui lequel ?
- Concernant les requêtes sur la base de données, sur les 2000 c'est souvent la même qui est réalisée.. (récupérer un nom ou une réservation à l'heure donnée.). Serait-il plus rapide de couplé la BDD SQL à un fichier XML pour améliorer les performances ? Je m'explique : Par exemple créer un fichier XML qui récupère tous les noms et prénoms des personnes et de faire une recherche dans le XML plutôt que dans la BDD ? Pareil pour les réservations du jours ? Comme cela, le premier qui se connecte fait le fichier XML et les autres vont juste lire là-dedans ? Bien entendu par la suite le fichier XML est tenu à jour en parallèle à la BDD.
- Que peut m'apporter un frameworks si j'en ai jamais utilisé et que je me démerde vraiment bien en développement n-tiers (MVC) en php pure ? Quel est le meilleur framworks dans mon cas ?

J'ai eu utilisé Smarty et PEAR mais je me demande si les utiliser dans mon cas vont vraiment m'apporter quelque chose vue que la façon d'interagir avec le site change en fonction de chaque personne qui se connecte.


Je suis ouvert à toutes les remarques et propositions!

D'avance merci de votre collaboration !
mercredi 17 novembre 2010 à 03:33:54 | Re : Quel framworks ? Quel moteur de template ?

neigedhiver

Salut,

Je ne pense pas que la réponse à ton problème se trouve dans un framework ou un moteur de template.
Evidemment, un système de cache pourrait grandement améliorer les performances.

Mais à mon avis, la première chose à faire est d'optimiser tes requêtes et les index de tes tables. Pour cela :
- commence par réaliser un dictionnaire de requêtes, c'est à dire la liste complète des requêtes susceptibles d'être exécutées (sans tenir compte des valeurs variables)
- pour chaque requête, liste les champs sur lesquels portent les clauses WHERE, IN, ON (jointures), GROUP BY, ORDER
- place des index sur les champs en questions : un index peut porter sur plusieurs champs, à définir dans l'ordre dans lequel ils apparaissent dans la requête. Pour cela, la doc de MySQL sur la manière dont le moteur optimise les requêtes est une source précieuse d'informations.

Pour t'aider, tu peux utiliser les logs de MySQL qui listent les requêtes exécutées. Notamment le log des requêtes lentes. Ou encore le log des requêtes n'utilisant pas d'index.

N'étant pas DBA, j'aurais du mal à te donner plus de conseils sur la question, d'autant plus que si ça se trouve ta base de données est déjà super optimisée (mais d'après les chiffres que tu annonces, ce n'est très probablement pas le cas, même si on ne sait pas sur quelle durée sont exécutées ces 2000 requêtes...)

Concernant un fichier XML : à mon avis, c'est une très mauvaise idée. Quand on met en cache, c'est du HTML prêt à être renvoyé au navigateur. Lors de l'élaboration de ton dictionnaire de requêtes, tu devrais identifier des requêtes qui sont exécutées plus souvent que les autres. Selon ce qu'elles retournent, il peut être intéressant de mettre leur résultat en forme (HTML) et en cache. Si ce sont des requêtes SELECT, suivant leur nature et leur fréquence, tu pourras modifier la durée de vie du cache de manière à gagner plus ou moins en performances sans pénaliser la fraicheur des données.

Très franchement, Smarty est loin d'être aussi rapide que ses développeurs veulent bien le faire croire. On peut aisément écrire un système de template assez basique plus rapide sans cache que Smarty avec (en adoptant une approche différente, donc peut-être pas la même souplesse).

1500 membres inscrits, ça ne me paraît pas suffisant pour faire ramer un serveur web, quand même... A moins que tu n'aies un vieux pentium 75, ce dont je doute... ?

J'ai cru comprendre que l'affichage des plannings te paraît un traitement très lourd. C'est peut-être une des premières choses à mettre en cache, justement. La mise à jour du cache ne devant intervenir que quand une modification est apportée (ajout/suppression/modification d'une réservation, etc).
Puisque tu as développé suivant le patron MVC, ton code devrait être modulaire (bien qu'on puisse faire du MVC proche du monolithe). Cela doit te permettre de générer facilement (sans trop de modifications à tes vues) uniquement les tableaux de planning. Une fonction (ou méthode, ou ce que tu veux, une routine quoi) est à déclencher lorsqu'un évènement modifiant le tableau intervient (PHP n'est pas évènementiel, mais utiliser cette idée peut être intéressant).

Et pour ce qui est de l'utilisation d'un framework... On peut lire des centaines d'articles ventant les mérites de Symfony, Zend, CakePHP, etc... Je découvre depuis 2 jours Symfony... Rien que pour afficher la page par défaut après l'installation, il faut 73ms, dont 50% uniquement pour le chargement de la configuration... Certes, c'est complet, super chiadé, tout ça... Mais il y a des millions de tonnes de lignes de code dont tu n'auras probablement pas besoin, des centaines de couches les unes sur les autres qui rendent le code tellement abstrait qu'on se demande si PHP lui-même n'y perd pas un peu ses tokens (à défaut de son latin).
Pour moi, choisir un framework c'est savoir qu'on ne pourra pas optimiser le code à fond. Mais un framework présente des avantages, comme :
- facilité de se plonger dans le code d'un site quand on connait le framework utilisé
- sécurisation de l'application "garantie" par les développeurs du framework (on n'est pas obligé de leur faire confiance, mais en général, ils font attetion à cette question)
- outil apportant des solutions à des problématiques récurrentes en développement (gestion d'erreurs, tests, validation, ORM, sessions utilisateurs, etc)
- outil permettant d'accélérer le développement d'une application

Après, y'a peut-être plein de choses à optimiser dans ton code, mais pour ça, faut le voir, y passer du temps. Y'a des gens qui se font payer pour ça, tu vois un peu... Tu ne pourras peut-être pas le faire tout seul, parce qu'étant l'auteur, tu auras du mal à prendre du recul sur tel ou tel choix que tu as fait pendant le développement. Et utiliser un framework ne permet pas d'optimiser son code autant qu'on peut le souhaiter.

Conclusion : optimiser la base de données + système de cache.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
mercredi 17 novembre 2010 à 18:46:15 | Re : Quel framworks ? Quel moteur de template ?

chatis

Merci pour ta réponse si rapide. Je vais me plonger sur la solution no framwork + cache + optimisation BDD comme tu le dis... Maintenant il me faut réfléchir à une bonne utilisation du cache.. je vais tester ca ses prochaines semaines.

Encore Merci


Cette discussion est classée dans : site, xml, template, moteur, framworks


Répondre à ce message

Sujets en rapport avec ce message

Moteur de recherche [ par NDK ] Bonjour à tous !!!J'aimerais réaliser en php, un moteur de recherche style net2one si vous connaissez.la différence de ce moteur de recherche par rapp Moteur de recherche pour une agence immobiliere [ par ziza ] Bonjour !Je suis sur un projet de mise en place d'un site d'une agence immobiliere. J'aimerais intégrer un moteur de recherche sur le site sous forme Quel moteur de recherche pour mon site ? [ par DivXter ] Bonjour,Je suis entrain de créer mon site,c'est un site pour télécharger des pochettes DVD de films,j'ai un dossier avec toutes les pochettes et j'aim Problème de gestion de fenetres [ par laurentbalmer ] Voilà,Sur la page principale de mon site, j'ai en "include" le menu avec des rubriques dont une qui est un moteur de recherche qui s'ouvre dans une au XML RSS [ par djamine ] Bonjour J'aimerais bien savoir comment utiliser les RSS sur mon site j'ai trouver pas mal des sites qui proposes des version XML surtout celle est new moteur de recherche ... [ par djagger ] Salut !Je voudrais mettre un moteur de recherche sur mon site.Le problème c'est que tout est en PHP, je m'explique.En fait j'ai qu'une seule page, qui Import XML [ par vl92 ] Bonjour,Je me suis fias une liste d'achat d'un site de e-commerce. Mais, je dois la mettre à jour à chaque fois que les prix changent. N'y a t-il pas Moteur de recherche pour mon site perso [ par benoyt ] Bonjour à tous et à toute, je n'arrive pas à trouver un moteur de recherche pour mettre sur mon site. En fait mon site, parle de livre, alors j'aimera Le Xml [ par MATHIS49 ] Bonjour ! je voulais savoir si vous connaissiez un site qui explique le XML avec des exemples simples pour débutant (un peut comme siteduzero.com). En Positionnement d'un site dans un moteur de recherche [ par spardo ] Bonjour, Voilà, je voudrais créer un petit programme qui analyse le positionnement d'un site dans un moteur de recherche à partir de mots-clés. Par ex


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales