jinnguyen / puja
Puja is a lightweight, flexible and easy PHP template engine. Inspired in django, Puja also support validate template syntax!
Requires (Dev)
- codeception/aspect-mock: 0.5.3
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2025-02-19 22:29:16 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 ====