Estaba leyendo esta pregunta en stackoverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
y la respuesta aceptada dice hacer plantillas PHP simples como esta:
template.php:
<html>
<head>
<title><?=$title?> </title>
</head>
<cuerpo>
<? = getContent ()?>
</body>
</html>
index.php:
<? php
$ title = 'Título de demostración';
función getContent () {
volver '<p> ¡Hola mundo! </p>';
}
include ('template.php');
?>
Para mí, lo anterior no está bien estructurado en el sentido de que template.php depende de variables que están definidas en otros scripts. Y está usando un include () para ejecutar código cuando lo hace include('template.php')(en lugar de usar include () para incluir una clase o una función que no se ejecuta inmediatamente).
Siento que un mejor enfoque es envolver su plantilla dentro de una función:
template.php:
<? php
plantilla de función ($ título, $ contenido) {
ob_start (); ?>
<html>
<head>
<title><?=$title?> </title>
</head>
<cuerpo>
<? = $ contenido?>
</body>
</html>
<? php return ob_get_clean ();
}
?>
index.php:
<? php
require_once ('template.php');
plantilla de impresión ('Título de demostración', '<p> ¡Hola mundo! </p>');
?>
¿Es mejor el segundo enfoque? ¿Hay una forma aún mejor de hacerlo?