Je lisais cette question sur stackoverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
et la réponse acceptée dit de faire des modèles PHP simples comme ceci:
template.php:
<html> <head> <title><?=$title?> </title> </head> <body> <? = getContent ()?> </body> </html>
index.php:
<? php $ title = 'Titre de démonstration'; fonction getContent () { return '<p> Hello World! </p>'; } include ('template.php'); ?>
Pour moi, ce qui précède n'est pas bien structuré dans le sens où template.php dépend de variables définies dans d'autres scripts. Et vous utilisez un include () pour exécuter du code lorsque vous le faites include('template.php')
(par opposition à l'utilisation de include () pour inclure une classe ou une fonction qui n'est pas immédiatement exécutée).
Je pense qu'une meilleure approche consiste à envelopper votre modèle dans une fonction:
template.php:
<? php modèle de fonction ($ title, $ content) { ob_start (); ?> <html> <head> <title><?=$title?> </title> </head> <body> <? = $ content?> </body> </html> <? php return ob_get_clean (); } ?>
index.php:
<? php require_once ('template.php'); modèle d'impression ('Titre de démonstration', '<p> Bonjour tout le monde! </p>'); ?>
La deuxième approche est-elle meilleure? Existe-t-il une meilleure façon de procéder?