Stavo leggendo questa domanda su StackOverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
e la risposta accettata dice di fare semplici template PHP come questo:
template.php:
<Html>
<Head>
<Title> <? = $ Title?> </ Title>
</ Head>
<Body>
<? = GetContent ()?>
</ Body>
</ Html>
index.php:
<? Php
$ title = 'Titolo demo';
funzione getContent () {
return '<p> Ciao mondo! </p>';
}
include ( 'template.php');
?>
Per me quanto sopra non è ben strutturato, nel senso che template.php dipende da variabili definite in altri script. E stai usando un include () per eseguire il codice quando lo fai include('template.php')(invece di usare include () per includere una classe o una funzione che non viene immediatamente eseguita).
Sento che un approccio migliore è avvolgere il modello all'interno di una funzione:
template.php:
<? Php
modello di funzione ($ title, $ content) {
ob_start (); ?>
<Html>
<Head>
<Title> <? = $ Title?> </ Title>
</ Head>
<Body>
<? = $ Contenuti?>
</ Body>
</ Html>
<? php return ob_get_clean ();
}
?>
index.php:
<? Php
require_once ( 'template.php');
modello di stampa ('Demo Title', '<p> Hello World! </p>');
?>
Il secondo approccio è migliore? C'è un modo ancora migliore per farlo?