2017 © Pedro Peláez
 

library puja-template

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

image

jinnguyen/puja-template

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

  • Wednesday, November 22, 2017
  • by jinnguyen
  • Repository
  • 1 Watchers
  • 0 Stars
  • 22 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Puja v1.1

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

Install:
, (*2)

composer require jinnguyen/puja-template
require '/path/to/vendor/autoload.php';

class CustomFilter extends \Puja\Template\Lexer\Filter\FilterAbstract
{
    public function dateFilter($var, $args) {
        return abs($var);
    }
}

class CustomTag extends \Puja\Template\Lexer\Tag\TagAbstract
{
    public function cssTag($arg)
    {
        return '';
    }

    public function javascriptTag($arg)
    {
        return '';
    }
}

$puja = new \Puja\Template\Template(array(
    /**
    * Folders that contain template files and the last folder is higher priority 
    * Ex: templateDirs = ['/path/to/template/Default', '/path/to/template/2017'] and file test.tpl is in both /path/to/template/Default and /path/to/template/2017.
    * Then /path/to/template/2017/test.tpl (the last folder) will be used
    */
    'templateDirs' => [
      __DIR__ . '/templates/Default',
      __DIR__ . '/templates/2017'
    ],
    /**
    * Cached folder contains generated-files by Puja-Template
    */
    'cacheDir' => __DIR__ . '/cache/',
    /** Cache level, current we just support 3 levels
    * 0: no cache, (Puja-Template will re-generate every time)
    * 1: smart cache, (Puja-Template generate in the first time and ONLY re-genertate when file template (.tpl) has changed
    * 2: hard cache ( Puja-Template never re-generate files until genereted file has been deleted.)
    */
    'cacheLevel' => 0,
    /**
    * customTag class, default: NULL
    */
    'customTag' => 'CustomTag',
    /**
    * customFilter class, default: NULL
    */
    'customFilter' => 'CustomFilter',
    /**
    * On/off mode debug
    */
    'debug' => true,
));

Some of Puja-Template'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. * Smart access variable value, ex: {{ a.b }} will access like $a->b if $a is a obj, and $a['b'] if $a is array., (*3)

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

Bug list: https://github.com/jinnguyen/puja/issues?page=1&state=open, (*5)

Example: file template: index.tpl:, (*6)

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

The result will be:, (*7)

Puja only run 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, (*8)

Hello {{ username }},
Welcome you go to the very first exmplate of Puja template.
  • php file: index.php

$data = array( 'username'=>'Jin Nguyen', ); $tpl->parse($template_file = 'index.tpl', $data);

The result will show:, (*9)

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

See User's guide for full information.
, (*10)

Template Inheritance:
- master.tpl:, (*11)

==== Start Master ===
{% block body %}Master Body{% endblock body %}
{% block javascript %}Master javascript{% endblock javascript %}
==== End Master ====
  • index.tpl
{% block javascript %}Index javascript [{{ block.supper }}]{% endblock %}
{% block body %}Index Body{% endblock %}

And the result will be:, (*12)

==== Start Master ===
Index Body [Master Body]
Index javascript
==== End Master ====

more detail >> , (*13)

The Versions

22/11 2017

dev-master

9999999-dev

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

  Sources   Download

The MIT License (MIT)

The Requires

 

by Jin Nguyen

template engine puja php template engine django style template engine validate syntax

22/11 2017

v1.0.2

1.0.2.0

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

  Sources   Download

The MIT License (MIT)

The Requires

 

by Jin Nguyen

template engine puja php template engine django style template engine validate syntax

22/11 2017

v1.0.1

1.0.1.0

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

  Sources   Download

The MIT License (MIT)

The Requires

 

by Jin Nguyen

template engine puja php template engine django style template engine validate syntax

11/02 2017

v1.0.0

1.0.0.0

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

  Sources   Download

The MIT License (MIT)

The Requires

 

by Jin Nguyen

template engine puja php template engine django style template engine validate syntax