Чтобы ответить на вопрос, как, один из популярных методов - использовать буферизацию и создание шаблонов для вывода.
Например, если вы находитесь в контроллере инфраструктуры MVC, вы бы использовали функцию для выбора шаблона и передачиданные шаблона.
Вы получите запрос в вашем контроллере.Кто-то хочет посетить страницу контактов.Вы будете делать любые проверки, которые вам нужны (например, посмотреть, отправили ли они форму, проверить данные и т. Д.), А затем выбрать шаблон и передать ему все необходимые данные
// Controller
contact($request) {
if (empty($_POST)) {
inc('contact-form', ['title' => 'Contact Page'])
} else {
inc('contact-thank-you', ['title' => 'Thanks for submitting!']);
}
}
Вы бы использовали такую функцию, как этаниже, чтобы выбрать шаблон из предустановленного каталога, а затем извлечь переменные.Это делает их доступными для вашего шаблона (НЕ ЭКСТРАКТНО $ _GET или $ _POST)
// Function to load template and output it
// Select a path and any variables
function inc($path, $variables, $print = true) {
$output = NULL;
$full_path = __DIR__ . "/views/{$path}.php";
if (file_exists($full_path)) {
// Extract variables
extract($variables);
// Output Buffer
ob_start();
// Include
include $full_path;
$output = ob_get_clean();
}
if ($print) {
print $output;
}
return $output;
}
// Inside templates/about.php
<main>
<header>
<h1>
<?= $title ?>
</h1>
</header>
</main>