То, что вы делаете, будет в порядке, пока вы не начнете использовать «Представления» или «Шаблоны», и в этом случае вы больше не размещаете свой контент HTML внутри запущенного «контроллера» или «действия».
Вместо этого вы загружаете представление и заполняете его значениями, которые оставляют порядок всех исходных текстов HTML для представления, а не для вашего файла PHP.
$view = new View('layout.php');
$view->header = $header;
$view->content = 'This is the main content!';
$view->footer = $footer;
print $view;
, который затем загружает файл макета, который выглядит примерно так:
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
<div id="header"><?php print $header; ?></div>
<div id="content"><?php print $content; ?></div>
<div id="footer"><?php print $footer; ?></div>
</body>
</html>