Obecnie robię to tak:Lazy zmienne ładowanie w szablonach
function load_template($script, $args){
extract($args);
require __DIR__ . '/templates/' . $script;
}
W moim kodu kontrolera:
// if home page was requested
load_template('home.php', array(
'title' => get_title(),
'content' => get_content(),
...
));
Szablon jest to skrypt PHP jak
<!DOCTYPE html>
<html>
<head>
<title> <?php echo $title; ?> </titlee>
...
Zastanawiam się, czy możliwe jest leniwne załadowanie tych zmiennych w jakiś sposób, więc tak naprawdę nie uruchamiam get_title()
lub get_content()
, dopóki szablon nie zażąda zmiennej.
Czy to możliwe, bez tworzenia parsera szablonów? Naprawdę chciałbym trzymać się prostych skryptów .php i html jako szablonów.
W skrócie, to pytam się, czy jest to możliwe do automatycznego przypisania wartości do zmiennej tylko wtedy, gdy jest to pierwszy wniosek.
$var = func(); // this should not run
if($var){ // now the code above should run:)
echo $var; // <- the value that was just assigned (don't run func() again)
}