承接 jinnguyen/puja-template 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jinnguyen/puja-template

Composer 安装命令:

composer require jinnguyen/puja-template

包简介

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

README 文档

README

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

Install:

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 '<style src="' . $arg . '" />';
    }

    public function javascriptTag($arg)
    {
        return '<style src="' . $arg . '" />';
    }
}

$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.

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

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 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
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:

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 [{{ block.supper }}]{% endblock %}
{% block body %}Index Body{% endblock %}

And the result will be:

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

more detail >>

统计信息

  • 总下载量: 47
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: The
  • 更新时间: 2017-02-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固