2012-01-14 4 views
1

J'ai cette fonction mais ce n'est pas bon. Il est difficile de déboguer mon code:PHP modèle/fonction de mise en page

fun... { 
    eval('?>' . str_replace(
     '{yield}', 
     file_get_contents('templates/' . $template . '.phtml'), 
     file_get_contents('templates/layouts/' . $layout . '.phtml') 
    )); 
} 

Veuillez me faire savoir de meilleurs remplacements.

Merci.

+1

ressemble phpbb :) .. qu'est-ce que vous essayez de répondre spécifiquement? Cela semble être une partie assez importante de la fonction et charger vos pièces de modèle. – Silvertiger

Répondre

1
function render($template, $layout) { 
    $cache = "wherever/you/put/the/cache/file/{$template}_{$layout}.phtml"; 

    if (!file_exists($cache)) { 
     $template = file_get_contents('templates/' . $template. '.phtml'); 
     $layout = file_get_contents('templates/layouts/' . $layout . '.phtml'); 

     $output = str_replace('{yield}', $template , $layout); 
     file_put_contents($cache, $output); 
    } else { 
     include($cache); 
    } 
} 
1

utilisant en mémoire tampon de sortie est la meilleure façon pour acheiving données de modèle rempli

ob_start(); 
include "my/template/link.phtml"; 
$content = ob_get_contents(); 
ob_end_clean();