Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas devs?
Escrevi um template usando php.
Separei header, footer, pages, etc...
Há alguma forma de eu fazer um "dist" desse template, para arquivos .html?
Se puderem, gentileza me orientar sobre o que devo pesquisar pra compreender.
Grato!
Bem, como o Gabriel já explicou, esse tipo de coisa não pode ser feita de forma nativa.
Se bem entendi o que você está precisando é de um sistema de template engine. Já desenvolvi umas coisas como essa baseado principalmente no Blade do Laravel. Ou seja, posso criar vários arquivos PHP e salvar isso em um único arquivo juntando as lógicas e tal.
Como a gente faz no Blade mesmo, usando os @yields, @includes, @foreach etc.
Você pode usar o Twig, como já mencionado antes. Mas se o que você precisa é diferente disso, é salvar o resultado em um arquivo HTML, você pode fazer um script próprio. Algo como:
<?php
function getHtmlResponse(string $file): ?string {
if (!file_exists($file)) {
return null;
}
ob_start();
include $file;
return ob_get_clean();
}
$content = getHtmlResponse("/var/www/html/meu-script-top.php");
if (!empty($content)) {
file_put_contents("/var/www/html/resultado.html", $content);
}Excelente idéia @Tadeu Barbosa!
Agradeço por compartilhar.
Acabei reescrevendo em .pug + .json
Bom, PHP não tem essa funcionalidade, tanto que a transpilação é o conceito de ler o código em uma linguagem e transformar no equivalente de outra linguagem. O PHP por si só é interpretado (as vezes compilado também), por isso não é gerado um dist. Além disso, ele roda apenas no servidor.
Acredito que poderias ir na direção de um template engine, o TWIG é um exemplo. Nesse caso, o template é escrito em uma linguagem própria (em geral, é similar a quase todos os outros templates engine). Aí sim, esse pode ser compilado para PHP (eu ainda diria que é uma transpilação, mas o TWIG chada de compilação).