Neste post irei demonstrar como alterar o Layout padrão no Zend Expressive, caso você esteja utilizando o Zend View.
O procedimento é bem simples.
No meu caso estou utilizando o Zend Expressive com as configurações modulares e usando o Zend View, e minhas configurações estão no arquivo src/App/src/ConfigProvider.php
, por este motivo, neste arquivo há um bloco semelhante a este:
public function getTemplates(): array
{
return [
'paths' => [
'app' => [__DIR__ . '/../templates/app'],
'error' => [__DIR__ . '/../templates/error'],
'layout' => [__DIR__ . '/../templates/layout'],
],
];
}
Na ultima linha é definido um Array contendo os caminhos para arquivos de layout, e por padrão internamente o Zend Expressive configurado com o Zend View vai utilizar o arquivo o valor “layout::default” que apontará para src/App/templates/layout/default.phtml
.
Se você deseja usar outro arquivo, a solução é você informar ao método render no Array $data que você deseja trocar de layout da seguinte forma:
public function handle(ServerRequestInterface $request): ResponseInterface
{
return new HtmlResponse($this->template->render('app::home-page', [
'layout' => 'layout::no-columns'
]));
}
Isso fará com que o Zend Expressive utilize o arquivo src/App/templates/layout/no-columns.phtml
.
É isso ai!
Espero que tenha lhe ajudado!
Abraço do Giba!