Cherche façon plus simple de créer un site ? -> MVC [Résolu] - PHP - Programmation
Marsh Posté le 26-06-2007 à 15:59:59
Moi j'utilise plutôt une petite astuce pour palier cette faille include, je fais un file_exists() comme ceci:
Code :
|
Ca n'inclut la page que si elle existe sur le serveur. Si tes pages sont stockées dans un répertoire différent ou ne portent pas le même nom que la variable $_GET["page"] demandée, tu peux toujours faire des exceptions avec else if.
Marsh Posté le 26-06-2007 à 16:19:09
Tu peux faire un peu plus compliqué et te lancer dans les design patterns comme le MVC.
http://forum.hardware.fr/hfr/Progr [...] 7425_1.htm
Marsh Posté le 26-06-2007 à 16:22:21
Une autre approche :
http://forum.hardware.fr/hfr/Progr [...] 7425_1.htm
edit: grilled :x
Marsh Posté le 26-06-2007 à 16:32:52
Intéressant =) Merci les gars.
Sinon j'ai vu un module type MVC qui s'apelle symfony un collégue m'avait conseillé ça. Vu que ce nom "MVC" revient je crois que cette méthode commence à se généraliser et donc il me semble inévitable de me lancer là dedans
Le topic a l'air plutôt bien foutu en plus.
Marsh Posté le 26-06-2007 à 17:00:12
elojar a écrit : Le topic a l'air plutôt bien foutu en plus. |
Mais il l'est
J'y ai appris pas mal de chose intéressante
c0wb0y a écrit : Une autre approche : edit: grilled :x |
Marsh Posté le 27-06-2007 à 09:12:47
Sujet résolu, mais j'en profite pour poursuivre la discussion sur l'architecture d'un site php...
Le framework (modèle de conception) MVC est très prisé dans la plupart des langages (personnellement utilisé en java et jsp [oui il y aussi du java mais pas seulement]). Il s'agit d'un pattern "relativement" simple à comprendre et à mettre en oeuvre.
Question : En php l'architecture à page variable avec des includes pose des soucis de sécurité => vérification du nom de la page, par structure switch ou file_exists() (+1 kmeleon1) mais avec différents répertoires c'est encore réalisable mais ça se complique un peu.
Que pensez vous de procéder à l'envers ce n'est pas le contenu de la page qui est variable, mais l'en-tête, le menu, etc. . Ce n'est pas mon idée, mais elle est proposée la plupart du temps... Alors oui si on veux refaire la conception du site ça oblige à reprendre chaque page (et encore si on a un css commun peut être pas). Mais que pensez vous de cette solution? (J'accepte les c'est nul, t'es fou toi si il y une raison derrière...)
Marsh Posté le 27-06-2007 à 10:13:35
C4O2 a écrit : Sujet résolu, mais j'en profite pour poursuivre la discussion sur l'architecture d'un site php... Le framework (modèle de conception) MVC est très prisé dans la plupart des langages (personnellement utilisé en java et jsp [oui il y aussi du java mais pas seulement]). Il s'agit d'un pattern "relativement" simple à comprendre et à mettre en oeuvre. Question : En php l'architecture à page variable avec des includes pose des soucis de sécurité => vérification du nom de la page, par structure switch ou file_exists() (+1 kmeleon1) mais avec différents répertoires c'est encore réalisable mais ça se complique un peu. |
Pas besoin d'utiliser un switch. Tu peux très bien utiliser un tableau.
Exemple :
pages.php
Code :
|
FrontController.php
Code :
|
Bon j'ai zappé quelques tests sur le $_GET, je veux juste que tu comprenne bien l'idée qu'il est possible d'éviter d'avoir un switch.
Il aurait été intéressant que ton message soit dans le topic MVC pour tout regrouper.
Marsh Posté le 27-06-2007 à 10:29:27
L'idée du tableau me plaît assez. Du coup il me paraît impossible (bien plus difficile ^^) d'afficher une page différente.
C'est vrai que mon post avait sa place dans le topic MVC, mais j'étais tombé sur ce topic et j'en ai profité pour poser une question.
J'en déduis qu'on oublie l'idée des pages ayant tout de variable (en-tête, menu, ...) sauf le contenu... ^^
Marsh Posté le 27-06-2007 à 11:00:40
C4O2 a écrit : L'idée du tableau me plaît assez. Du coup il me paraît impossible (bien plus difficile ^^) d'afficher une page différente. |
Comment ca "page différente" ? Je ne vois pas trop ce que tu veux dire.
Marsh Posté le 27-06-2007 à 11:10:21
L'utilité de faire une vérification sur le nom de la page est de vérifier que la page que l'on désire afficher est bien une de celle prévue (ie : créée par l'administrateur du site), par page différente j'entends, si pour une raison ou pour une autre une personne avait la possibilité de transmettre une autre page avec pour contenu un gros titre "Coucou, je suis un incruste!", c'est le contenu de cette page qui serait affichée. La vérification sert justement à éviter ceci.
Mais avec ton système de tableau, ce n'est pas possible, puisque tu es forcé de passer par une page contenue dans ton tableau, ce qui est très bien.
Marsh Posté le 27-06-2007 à 12:54:08
Ah oui, je comprend mieux
Marsh Posté le 27-06-2007 à 22:25:24
pas moi
je vois pas trop comment on peut avoir des pages différentes avec le meme contenu (meme si les en-tetes menu sont différents).
sinon y'a toujours d'autres solutions, la meilleure reste celle du MVC, mais sinon pour un site standards, on générale on a des parties fixes (entete, menus, footer etc.) ben il suffit de les séparer, et les inclure dans les différentes pages appelées par l'utilisateur, il n'appelle que ce qui existe déjà, et les parties communes sont factorisées, donc pas de répétitions. mais bon, ça ne vaut pas un bon MVC bien pensé (c'est dingue je ne vois plus que ça maintenant )
Marsh Posté le 28-06-2007 à 09:15:23
Code :
|
naeh a écrit : pas moi |
J'avais soulevé le problème... mais apparement cette solution ne choque personne. Je pense qu'il s'agit des éternelles discussions sur la meilleure façon de programmer...
Code :
|
Je te renvoie ici (site bien pratique pour commencer surtout pour un total newbee, savoir lire en diagonal pour les autres).
http://www.siteduzero.com/tuto-3-1 [...] #ss_part_2
Sinon MVC ça déchire ^^, c'est bien pratique, surtout en cas d'évolution du site... et tu peux reprendre la vue pour d'autres sites...
edit : ajout du lien
Marsh Posté le 28-06-2007 à 10:18:29
C4O2 a écrit : Je te renvoie ici (site bien pratique pour commencer surtout pour un total newbee, savoir lire en diagonal pour les autres). |
Tu me renvoie où ?? Y'a pas de lien...
Marsh Posté le 28-06-2007 à 10:55:15
AlphaZone a écrit : Tu me renvoie où ?? Y'a pas de lien... |
Lien ajouté ^^
http://www.siteduzero.com/tuto-3-1 [...] #ss_part_2
Marsh Posté le 28-06-2007 à 11:41:23
Oui enfin tu me prends par les sentiments là.
J'suis peut être pas très futfut mais j'suis pas né de la dernière pluie. Je sais comment fonctionne un include (enfin presque )
Marsh Posté le 28-06-2007 à 14:20:45
naeh a écrit : pas moi |
Je répondais à naeh ^^. Et j'ai bien précisé qu'il s'agissait d'un site pour totals newbee... ^^ Mais très bien fait tout de même ^^
Marsh Posté le 28-06-2007 à 15:55:13
T'avais repris mon texte, s'pour ca
Marsh Posté le 26-06-2007 à 15:43:07
Bonjour,
jusqu'à maintenant lorsque je créais un site j'utilisais le système suivant :
un fichier index.php qui sert de squelette de mes pages web
dans lequel on inclus une page variable
cette page correspond en fait à une variable renvoyée par un switch du genre si la variable $page vaut "exemple" il renvoi la page exemple.php qui inclus celle-ci dans le index.php
Je sais pas si je suis clair ^^
En tout cas, c'est un système intéressant mais qui atteint vite sa limite. Si on posséde une centaine de page, il faut alors les recenser dans le switch à chaque fois, ce qui est assez rébarbatif...
Donc voilà je sais pas si vous utilisez un autre système que cleui-là plus simple et plus léger. Utilisant le PHP (donc pas de frame html svp ) ou alors du javascript sachant que je connais pas trop trop).
Message édité par elojar le 26-06-2007 à 16:33:50