PHP Classes
elePHPant
Icontem

PHP Template Compiler: Template engine that compiles logic into PHP code

Recommend this page to a friend!
  Info   View files Example   View files View files (26)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2017-03-09 (15 hours ago) RSS 2.0 feedNot enough user ratingsTotal: 202 This week: 18All time: 7,881 This week: 48Up
Version License PHP version Categories
template-compiler 1.0.1The PHP License5.4PHP 5, Templates, Code Generation
Description Author

This package is a template engine that compiles logic into PHP code.

It can take a given template file and parse it to generate a PHP script that will render the template output after processing the variable values and logic controls.

Currently it supports logic controls like: FOREACH, IF, ELSE, ELSEIF, SWITCH, CASE, BREAK, DEFAULT, INCLUDE, CONTINUE.

The processed output can be compressed and cached.

  Performance   Level  
Innovation award
Innovation award
Nominee: 1x

Details

Template Compiler.

Feachures

Handles special tags and replaces them with commands of the php interpreter. Transforms template variables to php variables. It is able recursively execute functions and directives: FOREACH, IF, ELSE, ELSEIF, SWITCH, CASE, BREAK, DEFAULT, INCLUDE, CONTINUE.

There is a possibility of compressing and caching the result.

To control the compilation uses the HTML comment tags. This makes the template friendly and intuitive even for the inexperienced designer.

Requirements

This program requires PHP 5.4+

List of template functions

<!-- FOREACH $array -->
<!-- FOREACH $array.index -->
<!-- CONTINUE -->
<!-- IF $variable -->
<!-- IF $var1 == $var2 -->
<!-- IF !empty($varable) -->
<!-- ELSEIF $variable -->
<!-- ELSEIF $var1 == $var2 -->
<!-- ELSEIF !empty($variable) -->
<!-- ELSE -->
<!-- SWITCH $variable -->
<!-- CASE $variable -->
<!-- BREAK -->
<!-- DEFAULT -->
<!-- INCLUDE filename -->
<!-- END --> Closes FOREACH IF SWITCH

Template constants and variables

{CONSTANT} means CONSTANT

$variable means $variable

$variable.index means $variable['index']

[$variable] or [$variable.index] is used in special case, ex. style="width:[$variable.width]px"

\__$variable\__ or \__Any words\__ when you need translations into another language

Example

<div class="header center">__Example__</div>
    <!-- INCLUDE menu -->
<div class="page">
...
</div>

This is template to include

<div class="main-menu center">
    <ul class="menu">
    <!-- FOREACH $menu -->
        <li>
            <a href="$menu.link">__$menu.name__</a>
            <!-- IF !empty($menu.sections) -->
                <ul>
                <!-- FOREACH $menu.sections -->
                    <li><a href="$sections.link" style="width:[$sections.width]px">__$sections.title__</a></li>
                <!-- END -->
                </ul>
            <!-- END -->
        </li>
    <!-- END -->
    </ul>
</div>

Result

<div class="header center">Example</div>
<div class="main-menu center">
    <ul class="menu">
        <li>
            <a href="#">Index</a>
        </li>
        <li>
            <a href="#">Publications</a>
                <ul>
                    <li>
                        <a href="#" style="width:100px">News</a>
                    </li>
                    <li>
                        <a href="#" style="width:200px">Articles</a>
                    </li>
                </ul>
            </li>
    </ul>
</div>
<div class="page">
...
</div>

After finishing (removing newlines) the data file will be placed in one line.

The original code: (https://github.com/Greenray/template-compiler).

COPYRIGHT AND LICENSE

Copyright (C) 2016 Victor Nabatov <greenray.spb@gmail.com>

This program is free software. You can redistribute it and/or modify it under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

??? ????????? ???????? ?????????. ?? ?????? ?????????????? ?/??? ?????????????? ?? ? ???????????? c ????????? Creative Commons Attribution-ShareAlike 4.0 International License . ??? ????????? ???????????????? ? ??????? ??? ??? ????? ????????, ?? ??? ?????-???? ????????; ???? ??? ??????????????? ???????? ???????????? ???????? ??? ??????????? ??? ?????????? ????.

  Files folder image Files  
File Role Description
Files folder imageapi (6 files, 2 directories)
Files folder imagecache (1 file)
Files folder imagecss (3 files)
Files folder imagelanguages (3 files)
Files folder imagetemplates (3 files)
Accessible without login HTML file CC-BY-SA-LICENSE4.0.html Doc. Documentation
Accessible without login Plain text file index.php Example Example script
Accessible without login Image file LT35.png Icon Icon image
Accessible without login Plain text file menu.json Data Auxiliary data
Accessible without login Plain text file readme.md Doc. Documentation
Plain text file template.class.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:202
This week:18
All time:7,881
This week:48Up