Un conseil: surcharge ou pas ?

Rechercher

Un conseil: surcharge ou pas ?

Par arbilus  -  3 reponses  -  Le 17/07/2010 12:18  -  Editer  - 

Bonjours, j'aimerais que vous me donniez votre avis :

Me conseillez-vous d'utiliser des "fonctions" (je sais pas si ça s'appelle comme ça) pour le contenu de mes pages . Je m'explique :

J'ai pensé qu'une fois mon site fini il y aurait un petit problème: dans le cas où je voudrais modifier un ligne commune à toutes mes pages je devrais répéter cette action autant de fois que j'ai de page :heink: . Alors j'ai pensé à utilisé ceci :

(fichier content.php ->)

<?php   define('footer1', '<a href="2v.html">xxxxxxx</a>');     define('footer2', 'xxxxxxxxxxxx');     define('footer3', 'xxxxxxxxxxxx');   define('footer4', 'xxxxxxxxxxxx');     define('footer5', 'xxxxxxxxxxxx');     define('footer6', 'xxxxxxxxxxxx');     define('footer7', 'xxxxxxxxxxxx');     define('footer8', 'xxxxxxxxxxxx');     define('footer9', 'xxxxxxxxxxxx');     define('footer10', 'xxxxxxxxxxxx');     define('footer11', 'xxxxxxxxxxxx');     define('footer12', 'xxxxxxxxxxxx');?>

 

Là c'est pour le footer . Mais je compte faire de même pour toutes les lignes communes de mes pages . Ainsi, dans mes pages au lieu d'avoir une ligne normal de code html (par exemple), j'aurais par exemple ceci : .

Est-ce une bonne solution . Car j'ai pensé que si j'utilisé ce système à chaque chargement de mes pages le fichier content.php se chargerait . Or celui-ci une fois finit sera assez important et si il se charge à chaque chargement de mes pages cela pourrait saturer ma bande passante .

Qu'en pensez-vous. Est-ce que je risque quelque chose au niveau de ma bande passante ou carrément, au niveau du serveur lui-même .

(je précise que la réponse du style "ça dépend du nombre de visiteurs" ne sert à rien car mon site pourra très bien avoir 50000 visiteurs/ jour (c'est un exemple ...) comme 100/jour . On verra)

PS: chaque page aurait ainsi cela avant le head:

<?php      require("content.php");  ?>

 

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 17/07/2010 18:19  -  Haut de page  - 

Ha que voilà une question qu'elle est bonne :)

Problème : la répétition de code inutile. Mais comment résoudre ce noeud gordien. Là, il faut analyser non pas la manière de programmer, c'est prématuré, mais la sortie attendue. Or on finit par réaliser que certaines parties du code HTML qui est envoyé au navigateur comprend certaines parties qui ne changent pas considérablement. Et dans ce qui change, on peut distinguer la structure et le contenu. Parfois, la structure sera strictement identique quelle que soit la page affichée mais le contenu pourra évoluer, d'autres fois il y aura des variantes plus ou moins importantes.

Là, tu as le problème du « footer », regardons rapidement un code et surtout ce qui est toujours pareil :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset='UTF-8'" xml:lang="fr" />
    <title>Titre de la page</title>
  </head>
  <body>
    .... contenu de la page, variable...
  </body>
</html>

Ça, c'Est la base fondamentale et cette structure devra toujours être présente. On a quoi qui varie là dedans ? Dans la partie « head », on pourra avoir des balises meta supplémentaires, les liens vers des feuilles de style, des liens vers des javascripts, des styles CSS ou du JavaScript. Selon la page affichée, on va devoir définir ce qu'il faut ou non ajouter.

Pareil pour le pied de page, ce sera toujours les deux balises de fermeture et , mais juste avant on pourra avoir un contenu dont la structure ne chagera pas mais assortie d'un contenu dépendant de la page affichée.

Mais pour ces parties communes à toutes les pages, il est inutile et surtout contre-productif d'avoir autant de fois le code qu'il existe de pages : un seul fichier, des variables et on inclut les variables en leur affectant la valeur selon le contenu de la page demandée.

Tout ça est un peu conceptuel, mais ta question est une excellente question à se poser. La réponse générique en programmation s'appelle DRY : Don't Repeat Yourself, ou en français "Ne vous répétez pas"

Cependant ta solution avec des constantes n'est peut-être pas forcément la solution la plus pratique. Tu vas construire le contenu de ta page avant d'inclure ton footer : tu peux donc à ce moment là définir le contenu des variables de ce footer. Dans un fichier de configuration, tu définis des valeurs par défaut à ces mêmes variables, comme ça si tu ne leur affectes pas de nouvelles valeurs lors de la construction de la page, tu auras quand même une valeur affichée. Saisis-tu bien l'idée générale ?

 
Par arbilus  -  Le 17/07/2010 21:06  -  Haut de page  - 

Oui je comprend . Mais j'ai déja appliqué ma façon de faire sur mon site . Bien que pas des plus pratiques elle fonctionne parfaitement : j'ai qu'un seul fichier à modifier .

De plus j'ai fait en sorte que toutes les constantes soient executées. Donc c'est parfait :) .

 
Par Cyrano  -  Le 17/07/2010 21:12  -  Haut de page  - 

C'est surtout ce point qui est important : un seul fichier à modifier : mais en réalité si tu joue bien le truc, tu n'auras même rien à modifier du tout : ton fichier contient des variables auxquelles tu affectes des valeurs selon la page qui va l'appeler.

Pour les constantes, sois prudent quand même: attention à ne pas encombrer inutilement la mémoire avec des données qui ne sont pas utilisées du tout. Les constantes, c'est bien et pratique, mais ça ne veut pas dire pour autant qu'il est sage d'en faire un usage abusif.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |