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?