Skip to content

Jphn/php-template-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP TEMPLATE ENGINE

Sobre

Este é um simples projeto feito por mim, com o objetivo de desenvolver uma simples template engine para uso próprio em futuros projetos.

O projeto ainda está em uma fase bem inicial, então ainda não possui muitas funcionalidades. A engine foi desenvolvida na versão 8.1.6 do PHP, então podem haver incompatibilidades com versões anteriores.

Exemplo de uso

file.html

<!-- Global scope variables -->
<h1>{{ title }}</h1>

<!-- If function -->
{{ ?if subtitle }}
<h2>{{ subtitle }}</h2>
{{ ?/if}}

<!-- Foreach function -->
<ul>
 {{ ?foreach array }}
 <li>{{ this.index }} {{ this.value }}<li>
 {{ ?/foreach }}
</ul>
<!-- Works fine with associative arrays too -->
<ul>
 {{ ?foreach associativeArray }}
 <li>{{ this.index }} {{ this.name }} {{ this.age }}<li>
 {{ ?/foreach }}
</ul>

<!-- Repeat function -->
<ul>
 {{ ?repeat 5 }}
 <li>{{ this.index }} {{ subtitle }}</li>
 {{ ?/repeat }}
</ul>

file.php

$data = [
 'title' => 'Sample Title',
 'subtitle' => 'Subtitle',

 'array' => [
  'First Name',
  'Second Name',
  'Third Name'
 ],

 'associativeArray' => [
  [
  'name' => 'First Name',
  'age' => 99   
  ],
  [
  'name' => 'Second Name',
  'age' => 99   
  ],
  [
  'name' => 'Third Name',
  'age' => 99   
  ]
 ]
];

$view = file_get_contents(...);

echo Engine::render($view, $data);

Saída

<h1>Sample Title</h1>

<h2>Subtitle</h2>

<ul>
 <li>1 First Name</li>
 <li>2 Second Name</li>
 <li>3 Third Name</li>
</ul>
<ul>
 <li>1 First Name 99</li>
 <li>2 Second Name 99</li>
 <li>3 Third Name 99</li>
</ul>

<ul>
 <li>1 Subtitle</li>
 <li>2 Subtitle</li>
 <li>3 Subtitle</li>
 <li>4 Subtitle</li>
 <li>5 Subtitle</li>
</ul>