|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Bonjour
Dans l'idée de créer un CMS sous forme de site web), pour afficher une page X on doit charger différents modules dans les zones appropriées. Pour cela je me base sur trois choses:
Bref on a donc une Page = une liste de Zone-Module dépendante de ces 3 paramètres. L'idée classique est de faire un simple switch ultra long, qui va s'allonger à chaque nouvelle page, nouveau type de membre etc. L'idée était aussi de créer une table SQL (MySQL InnoDB) pour gérer tous ça (voire 2, je ne suis pas encore sûr). Sachant qu'on est connecté à la BDD d'office, j'aimerais savoir laquelle de ces deux méthodes sera la plus performante et/ou la plus évolutive. P.S: s'il vous plaît, ne dites pas "ça dépend" sans préciser (précisément) de quoi ça dépend, merci. |
|
|
01
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Ni l'un ni l'autre, il faut que tu mettes en place un design logiciel qui réponde à ce besoin. Je te recommande le patron MVC: http://julien-pauli.developpez.com/t...vc-controleur/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Il est deja en MVC et la c'est le front controller qui doit s'en charger, mais je vois pas en quoi sa influe sur le problemme.
|
|
|
00
|
|
|
#4 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Eh bien c'est normalement le rôle du routeur de permettre l'accès aux pages selon ces 3 paramètres. Les pages n'ont pas besoin d'être physiques, un seul contrôleur peut se charger de plusieurs pages et différencier le contenu selon ces 3 fameux paramètres en choisissant les données à importer de MySQL par exemple.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Voilà, la question est ou stoquer ces donnes, de manière classique, on fait un switch énorme avec toutes les possibilités, je voudrais essayer l'idee de les stoquer avec MySql, je demande justement lequel de ces deux methode était la plus rapide.
D'après mes tests le Switch se révèlent plus rapides, mais j'aimerais avoir confirmation (ou infirmation^^). |
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Pour répondre à la question: MySQL sera toujours plus lent qu'un bon gros SWITCH.
Mais c'est en réalité une fausse question que tu poses là, un CMS à pour vocation de travailler avec une quantité illimitée de données sans jamais toucher au code source de l'application (ce qui serait le cas avec un switch vu que tu serais obligé de définir les données "en dur" dans le code PHP). Il est question ici de flexibilité, non de performances. Tu n'est par ailleurs pas obligé de choisir MySQL, il existe d'autres SGBD comme SQLite, PostgreSQL, MongoDB etc. et d'autres moyens de stocker des données comme XML, JSON, INI, Redis, Memcached... A toi de trouver ce qui correspond le mieux à ton besoin: s'il s'agit d'extraire des bouts de contenu variants peu, XML ou JSON seront tout à fait apte à endosser ce rôle. En revanche, si les données sont relationnelles (comme par exemple un article et ses commentaires) alors une base de données sera plus appropriée.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
|
|
#7 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Un peu de code pourrait peut être aider à y voir plus clair.
Avec un MVC bien structuré tu n'as pas besoin de base de données ni de gros switch comme tu semble vouloir le faire. |
|
00
|
|
|
#8 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Enfin, s'il veut vraiment se construire son CMS maison, il vaut mieux pour lui qu'il ait un moyen de construire dynamiquement ses pages. Le MVC statique à ses limites
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Le code heuu... il y en a pas, etand donner qu'il n'y a ni bug ni problème concret ^^
Après une batterie de tests assez précise j'ai les résultats, ce sont les valeurs moyennes de 100 tests successifs. 0.000030994415283203 secondes => 100 elseif a 2 condition 0.000015974044799805 secondes => 100 switch a 2 condition 0.00045585632324219 secondes => table de 100 entrer avec 2 condition 0.0023970603942871 secondes => recherche de fichier dans un dossier a 100 fichier (style zend). avec 1000 cela donne un resultat similaire. Bon bin la différence n'est aps aussi catastrophique que je pensais, et puis comme tu l'as dit, utilise une bdd offre un gros a la maintenance, le truc c'est que j'ai la trouille de créer un bon cms mais trop lent donc j'essaye de perdre un minimum de temps dans chaque opération, surtout si elle est exécuté à chaque requete. |
|
|
00
|
|
|
#10 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Ok maintenant reste à se poser la question de la pertinence de la réalisation d'un tel projet vu qu'il existe plus de 350 CMS écrits en PHP à l'heure actuelle.
Pourquoi ne pas s'orienter vers un CMS existant ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
J'étudie l'informatique dans le meilleur universiter d'informatique en russie, si je suis incapable de créer un CMS, je pourrais difficilement dire que je me Considérer comme connaisseur dans les technologies web.
Sinon autant considérer quelqu'un utilisant Publisher comme un webmaster. |
|
|
00
|
|
|
#12 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 001 ![]() |
Ok alors bon courage
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com