Motores de template
O Lithe oferece flexibilidade ao permitir que você escolha entre diversos motores de template, como PHP puro, Blade e Twig. Além dos motores padrão, você pode configurar outros para otimizar a criação e a renderização de interfaces dinâmicas.
Configurando o Lithe para Renderização de Templates
Para que o Lithe possa renderizar arquivos de modelo, você precisa configurar algumas opções no seu aplicativo. Siga os passos abaixo:
Diretório de Templates
Primeiramente, defina o diretório onde os arquivos de modelo estão localizados. Você pode fazer isso com o seguinte código:
$app->set('views', __DIR__ . '/views');
Motor de Template
Em seguida, configure o mecanismo de template que será utilizado pelo Lithe. Por exemplo, para usar o Blade, você deve definir:
$app->set('view engine', 'blade');
Instalação do Pacote
Após configurar o motor de template desejado, instale o pacote Composer correspondente ao mecanismo escolhido para garantir que tudo funcione corretamente.
Usando os Motores de Template
O Lithe suporta diversos motores de template, como PHP nativo, Blade e Twig, oferecendo flexibilidade na renderização de views. Para utilizar um desses motores, siga os passos:
Defina o motor de template
$app->set('view engine', 'default');
Crie um arquivo de template Blade
No diretório src/views
, crie index.php
com o conteúdo:
<html>
<body>
<h1>Hello, <?= $name ?></h1>
</body>
</html>
Instale o pacote via Composer
Renderizando Templates
Independentemente do motor de template, use a mesma abordagem para renderizar templates:
$app->get('/', function ($req, $res) {
$res->view('index', ['name' => 'William']);
});
Para aprender mais sobre Blade e Twig, consulte a documentação oficial.
Motores de Template Personalizados
Nota: Esta seção contém tópicos avançados. Caso não queira aprender sobre isso agora, sinta-se à vontade para pular esta seção.
Use o método engine
da classe Lithe\App
para configurar um motor de template ou para criar seu próprio motor personalizado. Isso permite que você escolha entre os motores disponíveis, como Blade ou Twig, ou desenvolva uma solução específica que atenda às suas necessidades, garantindo flexibilidade na renderização dos arquivos de modelo da sua aplicação.
$app->engine($name, $callback);
Onde:
$name
: Nome do motor de template.$callback
: Função de configuração do motor de template (aceita os seguintes itens como parâmetros: a localização do arquivo, o caminho das views, e a array de opções).
O código a seguir é um exemplo de implementação de um motor de template muito simples chamado lithe.view
.
// Definição do motor de template "lithe.view"
$app->engine('lithe.view', function ($file, $views, $options) {
// Leitura do conteúdo do arquivo de template
$content = file_get_contents($views . '/' . $file . '.lithe.view');
// Substituição das variáveis
foreach ($options as $key => $value) {
$content = str_replace('{{ ' . $key . ' }}', $value, $content);
}
// Retorno do conteúdo renderizado
echo $content;
});
// Configuração do motor de template
$app->set('view engine', 'lithe.view');
Seu aplicativo agora será capaz de renderizar arquivos .lithe.view
. Crie um arquivo chamado index.lithe.view
no diretório de views com o seguinte conteúdo:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ message }}</h1>
<p>Este é um arquivo .lithe.view sendo renderizado!</p>
</body>
</html>
Então, crie a seguinte rota em seu aplicativo:
$app->get('/', function ($req, $res) {
$res->view('index', [
'title' => 'Meu motor de template',
'message' => 'Hello World'
]);
});
Quando você fizer uma requisição para a página inicial, o arquivo index.lithe.view
será renderizado como HTML.