Include

Corrigeur

WRInaute occasionnel
Soit un site ayant une trentaine de pages et qui pourra à terme en avoir beaucoup plus.

Pour gagner ce fichu temps d'affichage, vaut-il mieux charger un gros include avec toutes les fonctions dedans, même celles qui ne servent pas sur certaines pages, ou bien faire plein d'includes au cas par cas ?

1. Avec un seul gros include :
PHP:
<span class="syntaxhtml"><!DOCTYPE html><br /><span class="syntaxdefault"><?php <br />    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/fonction.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span><html lang="fr"><br /><head><br /><span class="syntaxdefault"><?php <br />    meta</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Mon titre'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Ma description'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Mes mots clés'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></head><br /><body><br /><span class="syntaxdefault"><?php<br />    bandeau</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Index'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'Tarifs'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span><div><br />    bla bla bla<br /><span class="syntaxdefault"><?php<br />    video</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'eY7AAsPp_tw'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 260</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 175</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></div><br /><span class="syntaxdefault"><?php<br />    pied</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">?><br /></span></body><br /></html></span>

2. Avec plein d'include, adapté au cas par cas selon les pages :
PHP:
<span class="syntaxhtml"><br /><!DOCTYPE html><br /><span class="syntaxdefault"><?php <br />    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/fonction.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span><html lang="fr"><br /><head><br /><span class="syntaxdefault"><?php <br />    $title</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Mon titre"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $description</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Ma description"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $keywords</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Mes mots clés"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/meta.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></head><br /><body><br /><span class="syntaxdefault"><?php <br />    $menu</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Menu actif principal"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $sousmenu</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"menu secondaire actif"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/bandeau.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span><div><br />    bla bla bla<br /><span class="syntaxdefault"><?php <br />    $nom</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"eY7AAsPp_tw"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $largeur</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">260</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $hauteur</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">175</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/video.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></div><br /><span class="syntaxdefault"><?php<br />    include </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/pied.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></body><br /></html><br /></span>

Votre avis ?
 

franckM

WRInaute impliqué
Il me semble plus simple de créer un fichier functions.php et d'appeler des fonctions au besoin ensuite.

J'avais vu un test un jour sur wordpress ou l'utilisation de functions.php était plus rapide pour l'affichage que l'utilisation de include.
 

Corrigeur

WRInaute occasionnel
Wordpress et l'article template_engines semble donc confirmer mon pressentiment. Merci FranckM et Spout pour vos réponses.
 

zeb

WRInaute accro
Il y a deux concepts différents dans ta question.

Un include d'un gros fichier "fonction" consomme surtout de la mémoire (pour le mapage du code). Des includes de petit fichier "en fonction de" peuvent consommer du temps machine (au travers des conditions qui déterminent l'inclusion ou non). A toi de voir ce dont tu peut disposer le plus facilement et a moindre coût.

Si tu n'a pas de test / condition pour inclure tes bibliothèques alors les petites sont préférables (sauf si tu dois inclure X fichiers avec X qui tend vers un grand nombre).

Maintenant il faut aussi regarder la techno générale du système (même au delà du concept même de serveur) car certains fichiers utilisés souvent peuvent bénéficier d'une gestion de cache qui tendrait a favoriser un gros include :wink:

Bref un bon bench est plus intelligent que des supputations.
 

Corrigeur

WRInaute occasionnel
Si ça peut aider à donner une opinion plus pertinente, je peux peut-être ajouter que l'hébergement sera réalisé auprès de O[...]H (avec un V au milieu), et que la totalité des includes (c'était la solution précédemment retenue) fait 60 ko répartis sur 60 fichiers (soit 250 ko utilisés sur mon disque Windows).
 

Discussions similaires

Haut