Puja is a lightweight, flexible and easy PHP template engine. Inspired in django, Puja also support validate template syntax!

v1.1.0 2016-10-23 13:24 UTC

This package is not auto-updated.

Last update: 2024-04-17 18:32:10 UTC


README

Puja is a lightweight, flexible and easy PHP template engine. Inspired in django, Puja also support validate template syntax!

Install:

  • Composer
composer require jinnguyen/puja
require 'vendor/autoload.php';
$puja = new Puja();
  • Old style
require '/path/to/Autoload.php';
$puja = new Puja();

Some of Puja's features:

  • VALIDATE TEMPLATE SYNTAX
  • it is extremely fast
  • no template parsing overhead, only compiles once.
  • it is smart about recompiling only the template files that have changed.
  • unlimited nesting of sections, conditionals, etc.
  • built-in caching of template output.

Validate syntax:
Puja support validate syntax before the parser run compiler. This will helpfull for you to write template syntax.

Download
GIT: git clone https://github.com/jinnguyen/puja.git
SVN: svn checkout https://github.com/jinnguyen/puja.git
Source code: https://github.com/jinnguyen/puja/zipball/master

Bug list: https://github.com/jinnguyen/puja/issues?page=1&state=open

Example: file template: index.tpl:

{% extends master.tpl %}
{% block body %}
	Hello, {{ a }
	Welcome you go to Puja template examples
{% endblock %}

The result will be:

Puja only show debug when mode debug is enabled
** We recommend you should only enable mode debug when your app is in develop. And disable it when your app go to production. It will save a lot time to template engine parser.

Basic API Usage:

  • template file: index.tpl
Hello {{ username }},
Welcome you go to the very first exmplate of Puja template.
  • php file: index.php
  <?php
  require_once '/path/to/Autoload.php';
  $tpl = new Puja;
  $tpl->tpl_dir = '/path/to/template/folder/';
  $data = array(
  	'username'=>'Jin Nguyen',
  );
  $tpl->parse($template_file = 'index.tpl', $data);
  ?>

The result will show:

Hello Jin Nguyen,
Welcome you go to the very first exmplate of Puja template.

See User's guide for full information.

Template Inheritance:

  • master.tpl:
==== Start Master ===
{% block body %}Master Body{% endblock body %}
{% block javascript %}Master javascript{% endblock javascript %}
==== End Master ====
  • index.tpl
{% block javascript %}Index javascript{% endblock javascript %}
{% block body %}Index Body{% endblock body %}

And the result will be:

==== Start Master ===
Index Body
Index javascript
==== End Master ====

more detail >>