Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Um problema que todo programador PHP enfrenta é separar o HTML do PHP. Bom, muitos vão falar que não porque usam o Smarty, ou que não faz tanta diferença pois são eles mesmos que fazem o design. Mas quando você precisa criar um sistema do 0, e ele fica muito extenso, dificultando assim uma possível manutenção na template do site, o que você faz?
Eu e um amigo tivemos uma ideia, não sei se já existe. Queria compartilhar ela com vocês, para receber críticas e quem sabe construir aqui mesmo no fórum essa ideia.
Nos meus trabalhos onde eu não usava nenhum meio de separação do HTML para o PHP eu fazia assim:
menu.php
<?php
$conteudo = '<div class="menu">'.$menu["titulo"].'</div><div class="submenu">'.$menu["submenu"].'</div>';
?>
Possuía uma página para inserir as variáveis:
dados.php
<?php
include("menu.php");
$menu["titulo"] = "Titulo do menu";
$menu["submenu"] = "Titulo do submenu";
?>
E onde tinha que dar exibir os dados era só dar echo $conteudo.
É uma forma muito suja, muito ruim. Mas estive pensando. E se ao invés disso, fizesse um script que fizesse o parsing de um arquivo .html apenas uma vez? gerando um arquivo .php com uma variável com todo seu conteúdo?
Seria assim:
menu.html ou menu.php
<div class="menu">{#titulo#}</div>
<div class="submenu">{#submenu#}</div>
Existiria um arquivo com a classe parser, vamos supor que fosse parser.php.
E em outro arquivo a gente faria o parseamento.
<?php
include("parser.php");
$myparser = new parser();
$myparser->setFile("$conteudo", "menu.html", "$menu");
?>
Após isso ele geraria um arquivo menu.php:
<?php
$conteudo = <<<EOD
<div class="menu">{$menu["titulo"]}</div><div class="submenu">{$menu["submenu"]}</div>
EOD;
?>
É claro que este foi um exemplo MUITO simples da minha ideia, daria para elaborar muito mais. Daria até para fazer um sistema que atualiza as templates automaticamente, verificando a última vez que o arquivo foi alterado.
Mas o que vocês acham? Qual a opinião sobre o sistema? Críticas, acha que pode ter mais alguma coisa?
Obrigado.
Carregando comentários...