Ну лично сталкивался с тремя способами реализация лайота:
1. Через extends в шаблонизаторе, типа smarty
{extends "layout/default.tpl"}
{block "content"}
<div>
...
</div>
{/block}2. Через вкладывание одного шаблона в другой на уровне контроллера:
public function indexAction(){
...
$this->layout('layout/default.tpl');
return new ViewModel([...])->setTemplate('page/index.tpl');
}3. Через декларацию лайота в шаблоне:
<?php $this->layout('layout/default.tpl') ?>
<div>
...
</div>Какой тебе больше нравится?