8796 sujets

Développement web côté serveur, CMS

A partir d'une Template (php et mysql) un peu lourde en terme de requête, je souhaite créer des fichiers statiques.
J'utilise les fonctions OB_ pour intercepter les flux de sortie du serveur php et créer des fichiers sans requête sql. Mais j'ai besoin aussi de garder une inclusion dynamique d'un fragment html.
Peut on éviter l'interprétation d'une partie du code php lors de la bufferisation ou existe il d'autres solutions d'include, ajax et js, ... ?


exemple de template.php
<html>
... <requête 1, requête 2, requête 3, conditions, ...>
<include ...>
</html>

je souhaite que l'include ne soit pas interprété au niveau de la buffurisation pour qu'il puisse être interprété au niveau du cache généré

Buffurisation
<?php
ob_start();
include 'template.php?param=x';
$tampon= ob_get_contents();
file_put_contents('cache/fichierx.php', $tampon) ;
ob_end_clean();
?>

Resultat souhaité
fichierx.php
<html>resultats de l'interpretation php mysql
<include>
</html>
Salut,

hum, ignorer les includes dans ob_start à ma connaissance ça n'existe pas. mais je ne sais pas tout Smiley cligne

soit tu décomposes en plusieurs flux. je sais pas, par exemple $header, $content,$menu etc... et tu recomposes.

soit tu as un seul flux mais qui va chercher plusieurs éléments pour ce constituer en fonction de ce qui déjà en cache.

si tu as mis en cache certains éléments ça ira déja plus vite. a toi de les nommer de façon a pouvoir retrouver ses éléments.

En gros pour un cache faut des fichiers dont le nom est unique en fonction des paramètres qu'ils prennent pour être générer. en suite tu rappelles ces éléments
par la façon dont tu as constitué le nom. si le fichier existe tu le lis sinon tu composes le code.

tu peux cacher des tas de choses différentes et pas seulement du html d'ailleurs. tous ce qui se générent.

ou sinon

j'essai d'imaginer des solutions....genre écrire du php dans ton fichier avec le code de ton include.ou avoir un fichier avec la partie dynamique (include) au debut, puis tu copie ce fichier et tu ajoutes le contenu du buffer en faisant un fopen (file,'a')?

Mais bof très vite tu seras coincé a mon avis.

Pascal