2010-04-21 9 views
0

J'utilise le système de modélisation PHPSavant pour un projet et je ne suis pas sûr de savoir comment utiliser ob_start dans ce cas.comment utiliser ob_start?

J'ai essayé avant .. par exemple,

page_header.php 
-- ob_start(); 

page_footer.php 
-- ob_end_flush(); 

Mais parce que maintenant je me sers d'un système templating .. ne suis pas sûr où mettre ces fonctions.

$template = new Savant3(); 
$template->some_var = $some_value; 
$template->display('default_template'); 

le default_template contient tous et remplir la section en utilisant certaines variables (ensemble à l'objet $ template). Dois-je utiliser ob_start et ob_end_flush où mon code html est ou à inclure sur chaque fichier php qui appelle ce modèle?

Des idées? Merci.

+0

Ce que vous voulez utiliser ob_start() n'est pas clair pour moi. –

+0

en fait la raison principale que je veux utiliser ob_start est d'ajouter la compression gzip. – user187580

Répondre

2

Vous n'avez pas besoin de forcer un vidage, lorsque le script PHP se termine, le tampon est vidé.

Tant que vous mettez ob_start() au début de votre script, c'est le meilleur endroit. En fait, vous pouvez forcer la compression GZIP, ce qui accélérera considérablement l'affichage de votre page. Il semble que la plupart des serveurs ont GZIP désactivé, mais vous pouvez le forcer dans votre PHP via:

ob_start('ob_gzhandler'); 
+0

en fait la raison principale que je veux utiliser ob_start est d'ajouter cette compression. – user187580

1

Je suppose que la méthode display sort réellement le modèle, donc c'est celui que vous devriez envelopper avec ob_start et ob_end_flush. Cependant, je ne vois pas vraiment l'avantage d'utiliser ob_end_flush autour d'un appel de fonction unique.

Questions connexes