PHP Classes
elePHPant
Icontem

Puja: Template engine that compiles templates into PHP

Recommend this page to a friend!
  Info   View files View files (35)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2013-09-30 (3 years ago) RSS 2.0 feedNot enough user ratingsTotal: 392 This week: 1All time: 6,279 This week: 1,047Up
Version License PHP version Categories
puja 1.0BSD License5.0PHP 5, Cache, Templates, Code Generation
Description Author

This package is a template engine that compiles templates into PHP.

It can validate and compile a template file. The template syntax allows conditional sections that can be nested.

It can compile a given template file and generate a PHP script with code that generates the output taking the template parameters and replacing them in the respective template mark positions.

The output of the compiled templates is stored in cache files to prevent recompilation time overhead. It can recompile template files only if they changed.

It supports a debug mode to provide more information when template processing fails due to a syntax error or some other reason.

Recommendations

What is the best PHP landing page creation class?
Create new PHP landing pages on the fly

Picture of Jin Nguyen
  Performance   Level  

Details

Puja

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

<strong>Some of Puja's features</strong>: * <strong>VALIDATE TEMPLATE SYNTAX</strong> * 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.

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

Example: file template: index.tpl: <pre> Hello {{ username }, Welcome you go to the very first exmplate of Puja template.</pre>

The result will be: <pre> TemplateSyntaxError: <strong>missing }}</strong> 1. Hello <strong>{{ username </strong>, 2. Welcome you go to the very first exmplate of Puja template.</pre>

Puja only show debug when mode <strong>debug</strong> is enabled<br /> We recommend you should only enable mode <strong>debug</strong> 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. <br /><br /> <strong>Basic API Usage</strong>:<br /> - template file: index.tpl <pre>Hello <strong>{{ username }}</strong>, Welcome you go to the very first exmplate of Puja template.</pre>

  • php file: index.php <pre> &lt;?php require_once '/path/to/puja.php'; $tpl = new Puja; $tpl->tpl_dir = '/path/to/template/folder/'; $data = array( 'username'=>'Jin Nguyen', ); $tpl->parse($template_file = 'index.tpl', $data); ?&gt; </pre>

The result will show: <pre> Hello <strong>Jin Nguyen</strong>, Welcome you go to the very first exmplate of Puja template.</pre>

See <a href="https://github.com/jinnguyen/puja/tree/master/docs/user-guide.md">User's guide</a> for full information.<br />

<strong>Template Inheritance</strong>:<br /> - master.tpl: <pre>==== Start Master === {% block body %}Master Body{% endblock body %} {% block javascript %}Master javascript{% endblock javascript %} ==== End Master ====</pre>

  • index.tpl <pre> {% block javascript %}<strong>Index javascript</strong>{% endblock javascript %} {% block body %}<strong>Index Body</strong>{% endblock body %}</pre>

And the result will be:

<pre>==== Start Master === <strong>Index Body</strong> <strong>Index javascript</strong> ==== End Master ====</pre> <a href="https://github.com/jinnguyen/puja/tree/master/docs">more detail &gt;&gt; </a>

githalytics.com alpha

  Files folder image Files  
File Role Description
Files folder imagedocs (6 files)
Files folder imageexamples (8 files, 1 directory)
Files folder imagesrc (6 files)
Accessible without login Plain text file .buildpath Data Auxiliary data
Accessible without login Plain text file .project Data Auxiliary data
Accessible without login Plain text file LICENSE Doc. Documentation
Plain text file puja.php Class Class source
Accessible without login Plain text file README.md Doc. Documentation

 Version Control Unique User Downloads Download Rankings  
 100%
Total:392
This week:1
All time:6,279
This week:1,047Up