Stavo leggendo questa domanda su StackOverflow:
e la risposta accettata dice di fare semplici modelli PHP come questo:
template.php:
<html> <head> <title><?=$title?></title> </head> <body> <?=getContent()?> </body> </html>
index.php:
<?php $title = 'Demo Title'; function getContent() { return '<p>Hello World!</p>'; } include('template.php'); ?>
Per quanto sopra, non è ben strutturato nel senso che template.php dipende da variabili definite in altri script. E stai usando un include () per eseguire codice quando fai include('template.php')
(invece di usare include () per includere una classe o una funzione che non viene immediatamente eseguita).
Credo che un approccio migliore sia quello di avvolgere il tuo modello all'interno di una funzione:
template.php:
<?php function template($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'); print template('Demo Title', '<p>Hello World!</p>'); ?>
Il secondo approccio è migliore? C'è un modo ancora migliore per farlo?