raelgc / template

PHP Template
http://raelcunha.com/template.php
GNU Lesser General Public License v2.1
72 stars 41 forks source link

Adicionar pasta de procura para os arquivos de template #30

Closed masakik closed 5 years ago

masakik commented 5 years ago

Ola, gostaria de saber se seria possivel especificar a pasta onde os arquivos de template estão guardados. A idéia seria especificar uma variável de configuração indicando uma pasta $tpl_path por exemplo. Assim o Template iria buscar os arquivos nessa pasta. Isso facilitaria pois assim não precisaria colocar essa variável na frente dos nomes dos arquivos.

Seria algo assim public function __construct($filename, $cfg = '') o $cfg está substituindo o accurate. Se for um boolean funciona como $accurate. Se for um array então poderia receber o $accurate, $tpl_path, e outros que vierem.

Se for uma boa idéia posso fazer um pull request com essas alterações.

masakik commented 5 years ago

Alguma ideia aqui?

Valkhan commented 5 years ago

Posso estar errado, mas o propósito da classe de template não é varrer arquivos em uma pasta, pois dessa forma você estaria "sugerindo" que o desenvolvedor colocasse todos os templates dentro de uma pasta específica, ou várias, o que levantaria novas questões como recursividade da consulta por exemplo.

É claro que estendendo a classe para este propósito específico é possível mas particularmente não vejo necessidade, utilizo o framework CodeIgniter, tenho a variável de posicionamento na pasta das Views e não vejo problema no append da mesma para incluir o arquivo.

Poderia citar um caso de uso onde tal comportamento se torne essencialmente necessário?

masakik commented 5 years ago

Minha idéia é poder trocar de template trocando a pasta base. Tenho por exemplo uma pasta template/default que contém os templates padrão. Caso se queira trocar o template mudaria a pasta para template/meu_template_personalizado. Nesse contexto sempre teria de concatenar uma variável de path nos arquivos de templates, que é claro é possível. Mas ficaria mais elegante se pudesse informar para o objeto a pasta de trabalho dos templates. Também posso estender a classe Template e implementar por conta própria mas me parece que é um recurso legal de se ter. Em tempo agradeço ao Rael e demais colaboradores por essa excelente biblioteca.