[ANN] Kwartz-php 0.3.2 - a template system for PHP, Ruby, and Java

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm pleased to announce the release of Kwartz-php 0.3.2.
This is a bugfix release.
  http://www.kuwata-lab.com/kwartz-php


Changes from 0.3.0:
  * [bug:1099306] KwartzAnalyzer#analyze() now analyzes BEGIN and END macro.
  * [bug:1098862] KwartzParser#parse_block_stmt() fratten the block-statement which is returned by parse_load_stmt().
  * [enhance] new class KwartzErbTranslator added
  * [change] KwartzAnalyzeVisitor class now extends KwartzVisitor class

  see http://www.kuwata-lab.com/kwartz-php/ChangeLog.html for details.



What's that?

  Kwartz-php is a template system which is available with multi
  programming language (PHP, Ruby and Java).
  And it is the first template system that realized the concept of
  'Separation of Presentation Logic and Presentaion data' (SoPL/PD).
  
  It is available to separate the presentation layer from the
  main program with any template system. In addition, Kwartz-php
  enables you to separate the presentation logics (iteration and
  conditional branching) from the presentation data (HTML file).


Features:
  * Separates presentation logic from presentation data.
  * Runs very fast
  * Supports multiple programing languages (PHP/Ruby/Java)
  * Doesn't break HTML design at all
  * Handles any text file
  * Supports Auto-Sanitizing and Partial-Sanitizing


Example:

  * Presentation Data (example.html)
      - There is no iteration nor conditional branching
        in the presentation data file.
    --------------------
    <table>
      <tr id="mark:values">
        <td>@{$var}@</td>
      </tr>
    </table>
    --------------------
  
  * Presentation Logic (example.plogic)
      - There is no HTML tags in the presentation logic file.
    --------------------
    ## Re-define an element
    element values {              ## element
      foreach ($list as $var) {
        @stag;                    ## start tag
        @cont;                    ## content
        @etag;                    ## end tag
      }
    }
    --------------------

  * Compile
      - Generate an output script from presentation data
        and presentation logic.
    --------------------
    $ kwartz-php           -p example.plogic example.html > example.php
    
    $ kwartz-php -l eruby  -p example.plogic example.html > example.rhtml
    
    $ kwartz-php -l jstl11 -p example.plogic example.html > example.jsp
    --------------------

  * Output Script
    (PHP)
    --------------------
    <table>
    <?php foreach ($list as $var) { ?>
      <tr>
        <td><?php echo $var; ?></td>
      </tr>
    <?php } ?>
    </table>
    --------------------

    (eRuby)
    --------------------
    <table>
    <% for var in list do %>
      <tr>
        <td><%= var %></td>
      </tr>
    <% end %>
    </table>
    --------------------

    (JSTL)
    --------------------
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
    <table>
    <c:forEach var="var" items="${list}">
      <tr>
        <td><c:out value="${var}" escapeXml="false"/></td>
      </tr>
    </c:forEach>
    </table>
    --------------------
    
    The above examples shows:
     * Presentation data (= HTML file) doesn't contain any logics.
     * Presentation logic file doesn't contain any data.
     * These are separated from the main program.
     
    The command-line option '-e' escapes the HTML special chars
    with 'htmlspecialchars()' in PHP, 'CGI::escapeHTML()' in eRuby,
    and '<c:out/>' tag without 'escapeXml="false"' in JSTL.


Web Page:
  http://www.kuwata-lab.com/kwartz-php

Download:
  https://www.kuwata-lab.com/kwartz-php/download.html

Users Guide:
  http://www.kuwata-lab.com/kwartz-php/users-guide.en.html

Reference Manual:
  http://www.kuwata-lab.com/kwartz-php/reference.en.html

ChangeLog:
  http://www.kuwata-lab.com/kwartz-php/ChangeLog.html


I hope you'd like it.

--
regards,
kwatch

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux