Criei um Conversor de PHP para Site Estático (PHPStaticRender), mas preciso de ajuda para validar o roadmap dele
Tudo começou com uma necessidade pessoal: eu queria hospedar meus sites gratuitamente em plataformas como Netlify e Cloudflare Pages.
O problema é que essas plataformas exigem sites estáticos. Eu tinha duas opções ruins: ficar copiando e colando cabeçalho e rodapé página por página (o que é muito trabalhoso para projetos com dezenas de paginas) ou usar geradores como Hugo. E sinceramente? O Hugo não me interessava, pois eu queria trabalhar com a minha própria organização de estrutura.
Como minhas linguagens principais são PHP e Python, resolvi criar meus projetos normalmente com PHP (usando includes, variáveis, condicionais, etc.) e renderizar o resultado final usando Python.
Assim nasceu o PHPStaticRender.
Basicamente, é uma ferramenta Python que converte projetos PHP dinâmicos em sites HTML estáticos. Ele percorre o diretório recursivamente, executa os arquivos PHP usando o interpretador do sistema e salva a saída como HTML, enquanto copia diretamente os arquivos estáticos.
O que ele já faz:
- Renderização Completa: Processa todo o projeto recursivamente.
- Conversão de Links: Converte automaticamente links internos .php para .html.
- Sistema de Ignorar: Configuro prefixos para ele ignorar arquivos de lógica (ex: __header.php).
- Assets: Mantém CSS, JS e imagens intactos.
Aqui entra a minha dúvida e onde preciso da opinião de vocês:
Para a minha necessidade (estruturas próprias), ele atende muito bem. Porém, quero expandir o projeto para ajudar mais desenvolvedores.
Percebi que em estruturas mais complexas, como frameworks ou CMS (tipo WordPress), minha ferramenta não funciona como esperado, pois ela gera os estáticos baseada nos arquivos físicos da pasta.
Estou num impasse sobre como evoluir este projeto:
- Tento achar uma forma de renderizar o site completo navegando por páginas e links externos (como se fosse um webcrawler)? Isso resolveria o problema de estruturas complexas.
- Ou mantenho da forma que está? Focando na simplicidade para quem quer codar "PHP raiz" com estrutura própria, já que assim ele já é bem útil.
O que vocês acham que agrega mais valor para a comunidade?
Link do projeto para quem quiser/puder analisar o código.