mugomes / miphanttpl
Gera HTML de forma dinâmica com PHP.
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/mugomes/miphanttpl
README
MiPhantTPL é uma biblioteca PHP leve, extensível e minimalista para geração de HTML através de métodos dinâmicos, permitindo escrever HTML de forma programática, fluente e sem templates externos.
Cada método chamado representa uma tag HTML, funcionando como uma DSL (Domain Specific Language) para HTML em PHP.
✨ Características
- Geração dinâmica de HTML via
__call - Cada método representa uma tag HTML
- Suporte automático a:
- Tags que não possuem fechamento (
img,br,input, entre outros) - Atributos booleanos (
checked,disabled,required, entre outros)
- Tags que não possuem fechamento (
- Possibilidade de estender tags auto-fecháveis
- Possibilidade de estender atributos sem valor
- Paradigma funcional
- Zero dependências
- Código pequeno, previsível e fácil de integrar
📦 Instalação
Via Composer
composer require mugomes/miphanttpl
Manual
Copie o arquivo MiPhantTPL.php para seu projeto e inclua via autoload ou require.
🚀 Uso básico
use MiPhantTPL\MiPhantTPL; $tpl = new MiPhantTPL(); echo $tpl->p('Olá mundo');
Resultado:
<p>Olá mundo</p>
🧱 Criando elementos HTML
echo $tpl->h1('Título'); echo $tpl->p('Conteúdo do parágrafo');
<h1>Título</h1> <p>Conteúdo do parágrafo</p>
🏷️ Atributos HTML
Os atributos são passados como array:
echo $tpl->a( 'Acessar site', ['href' => 'https://example.com', 'target' => '_blank'] );
<a href="https://example.com" target="_blank">Acessar site</a>
✅ Atributos sem valor (booleanos)
A biblioteca reconhece automaticamente atributos booleanos:
echo $tpl->input([ 'type' => 'checkbox', 'checked' ]);
<input type="checkbox" checked>
➕ Adicionando novos atributos sem valor
Você pode estender a lista padrão de atributos booleanos:
$tpl->addAttributeNoValue(['inert', 'itemscope']);
echo $tpl->div( 'Conteúdo', ['inert'] );
<div inert>Conteúdo</div>
🔁 Tags que não possuem fechamento
Tags como img, br, input e similares não recebem fechamento automaticamente:
echo $tpl->img([ 'src' => 'foto.jpg', 'alt' => 'Imagem' ]);
<img src="foto.jpg" alt="Imagem" />
➕ Adicionando novas tags sem fechamento
Caso você utilize elementos personalizados (ex: Web Components):
$tpl->addNotClose(['mycomponent']);
echo $tpl->mycomponent([ 'data-id' => '123' ]);
<mycomponent data-id="123">
🧩 HTML aninhado
Como tudo retorna string, é possível aninhar facilmente:
echo $tpl->div( $tpl->h2('Título') . $tpl->p('Texto do conteúdo'), ['class' => 'container'] );
⚙️ Uso com paradigma funcional (code())
O método code() permite escrever HTML de forma estruturada:
echo $tpl->code(function ($html) { return $html->doctype() . $html->html( $html->body( $html->h1('MiPhantTPL') . $html->p('Gerando HTML com PHP puro') ) ); });
📄 Doctype HTML5
echo $tpl->doctype();
<!DOCTYPE html>
👤 Autor
Murilo Gomes Julio
📺 https://youtube.com/@mugomesoficial
📜 Licença
Copyright (c) 2025-2026 Murilo Gomes Julio
Licensed under the MIT.
All contributions to the MiPhantTPL are subject to this license.