5160 sujets

Le Bar du forum

Salut à tous,

Je me posais une petite question à savoir les pour et les contre de faire des inclusions de pages.

Méthode 1 : (dans index)

<a href='page.php'>Lien</a>
avec dans page.php donc =>
<html><head></head><body>"texte"</body></html>


Méthode 2 : (dans index)

<a href='index.php?pg=page'>Lien</a>
<div id='contenu'>
      <?php
              include ("./".$_GET["page"].".php");
      ?>
</div>
avec dans page.php donc =>
"text"


Disons que j'ai un débat avec certains collègue qui préfèrent faire la méthode 1 et moi je suis le seul à fare la méthode 2 alors du coup je me pose la question.

Perso je trouve ca pratique car je n'ai pas dans chaque page à inclure tel ou tel fichier js ou tel ou tel fichier css.

Si le fichier JS n'est pas utile dans une page je prefere mettre un cas dans l'index plutôt que de le recopier dans 49pages sur 50.

Qu'en pensez vous ?

Rude

PS : Ceci n'est en aucun cas une tentative de troll. Je me pose juste des questions.
Modifié par ffwrude (22 Dec 2010 - 17:40)
En gros tu te demandes si il vaut mieux appeler/inclure un fichier qui contient la page entière ou un fichier général qui inclus seulement le contenu.

Vu les configurations possibles de site et la diversité des cas de figure, je dirai la méthode 3.

Les exemples donnés font vraiment penser à du simili statique ou le seul intérêt est de ne pas avoir à recopier les éléments persistant. Dans ce cas, je dirai que ta méthode est meilleure, l'autre n'a même pas de raison d'être en php.
Merci de vos réponses mais.... méthode 3 ? Je n'ai écris que deux méthodes...

@Kenor Qu'est-ce que tu veux dire par la ?
Modifié par ffwrude (23 Dec 2010 - 09:45)
ffwrude a écrit :
Merci de vos réponses mais.... méthode 3 ? Je n'ai écris que deux méthodes...


C'est une blague car il y a pas 2 façons de faire mais de multiples méthodes.

ffwrude a écrit :
@Kenor Qu'est-ce que tu veux dire par la ?


Le code tel quel permet d'inclure n'importe quel fichier présent sur le serveur ce qui est plutôt dangereux.
Ah oui. Mais non en fait.

C'est de l'appli intranet géré par des droits utilisateurs. l'utilisateur peut s'amuser s'il veut à changer les pages mais si il a pas le droit d'y accéder ca risque pas de marcher.

Pour le côté public je fais de l'url rewriting. Mais pour une appli intranet ca ne sert pas à grand chose je trouve.

En fait je m'attendais vraiment à ce qu'il y'est une façon mieux qu'une autre. Mais mes exemples sont peu être un peu trop simples.

Je veux dire que quand on a un design. Je prefere qu'il soit dans une page et inclure le contenu avec une variable en get suivant la page que de refaire à chaque fois une page qui continent tout le design. (C'est plus clair ? ou c'est pire ?)

S'il y'a d'autres méthodes pourrait tu me donner des exemples ? ou un lien avec ses diverses possibilitées ?
Modifié par ffwrude (23 Dec 2010 - 10:37)
autre question dans le même genre que je m'étais posée à une certaine époque, c'était :
Version n°1 :
header.php => <html><head>...</head><body>...
footer.php => ...</body></html>
page.php => include header.php, texte, include footer.php

OU bien version n°2 :
index.php => <html><head>...</head><body>..., include $_GET['page'], ...</body></html>
page.php => Texte

JE pense que la seconde est mieux, à condition d'utiliser l'url-rewriting et de faire gaffe à la sécurité (je pense qu'il n'est pas inutile de rappeler que include($_GET['page']) c'est hyper dangereux).
Si on n'est pas sûr par contre, préférer la version 1.

Par contre, évitez à tout prix d'appeler cette version 2 pseudo-frames. Ca n'a rien à voir avec les frames, et ça n'introduit que de la confusion. J'ai malheureusement déjà vu ce terme extrêmement mal choisi très souvent sur les forums de débutants.
Modifié par QuentinC (23 Dec 2010 - 11:43)
J'utilise aussi la version n°2.
Ta version numéro 1 est semblable à celle évoquer dans ma méthode 1 sauf qu'a la place d'un include c'est une recopie.
ffwrude a écrit :

Je veux dire que quand on a un design. Je prefere qu'il soit dans une page et inclure le contenu avec une variable en get suivant la page que de refaire à chaque fois une page qui continent tout le design. (C'est plus clair ? ou c'est pire ?)


Ça dépend du projet, si tu ne génère pas tout le temps le même <head>, tu vas te retrouver avec des tas de conditions et un code parfois bordélique.

La méthode 1 (celle décrite par QuentinC, car je voix pas l'intérêt de remettre à chaque fois le même code au début de chaque fichier) te donnera plus de souplesse car tu pourras faire le choix de ne plus inclure le même code au début de ton script facilement. Ça rend les fichiers un peu moins interdépendants et plus clairs.

Je ne pense pas que beaucoup de cms ou framework soient basés sur ta méthode. Généralement on va aller chercher un fichier selon l'url en cours qui en incluras d'autres.

Le thème de base de wordpress fonctionne comme ça. Le modèle MVC, c'est un controleur qui va appeler une ou des vues.

ffwrude a écrit :

S'il y'a d'autres méthodes pourrait tu me donner des exemples ? ou un lien avec ses diverses possibilitées ?

Il n y a pas réellement d'autre méthode mais je pense que tes exemples sont un peu trop simplistes, ça se résume un peu trop à header/content/footer.

Personnellement j'ai déjà utilisé les 2 méthodes mais après cette conversation je pense ne plus utiliser la seconde. Smiley cligne
Concernant ton lien, la méthode que je préconise est :
<a href='/page'>Lien</a>

Avec une réécriture d'URL telle que :
RewriteRule ^/([a-z0-9\-]+)$ /index.php?pg=$1 [L]

Qui transformera en interne l'appel à page en :
/index.php?pg=page

Ce qui fait qui a deux avantages :
* tu n'as pas à encombrer tes URL des extensions .php qui peuvent réduire la sécurité et l'évolutivité de ton site
* index.php est en quelque sorte ton point d'accès unique qui te permet de faire du routage aisément

Pour le contenu de ton fichier PHP, j'ai pas d'avis.