FWD: [[ANN] Kwartz-php 0.3.0 - a template system for PHP, Ruby, and Java]

From: Makoto Kuwata (kwa_at_kuwata-lab.com)
Date: 01/08/05

  • Next message: RelaxoRy: "Storing checkbox selections between record paging"
    Date: 8 Jan 2005 05:12:32 -0800
    
    

    --- forwarding ---
    From: Makoto Kuwata <kwa@kuwata-lab.com>
    Date: Sat, 01 Jan 2005 22:39:50 +0900
    Subject: [PHP] [ANN] Kwartz-php 0.3.0 - a template system for PHP, Ruby, and Java

    Hi all, A HAPPY NEW YEAR!

    I'm pleased to announce the release of Kwartz-php 0.3.0.
      http://www.kuwata-lab.com/kwartz-php

    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

    Changes from 0.2.0:
      * [enhance] support new functions (list_length(), str_toupper(), etc)
      * [enhance] support JSTL 1.1
      * [change] indent format of output script is changed
      * [bugfix] some bugs are fixed
      see http://www.kuwata-lab.com/kwartz-php/ChangeLog.html for details.

    I hope you'd like it.

    --
    regards,
    kwatch
    # [off topic]
    # I have submitted Kwartz-php to the Zend PHP5 contest, but ignored.
    # I have also submitted the Code/App Gallery, but ignored again. Sol...
    

  • Next message: RelaxoRy: "Storing checkbox selections between record paging"

    Relevant Pages

    • [ANN] Kwartz-php 0.2.0 - a template system for PHP, Ruby, and JSP
      ... I'm pleased to announce the release of Kwartz-php. ... multi language (PHP, Ruby and JSP). ... it is the first template system which realized the concept of ...
      (comp.lang.php)
    • Re: [[ANN] Kwartz-php 0.3.0 - a template system for PHP, Ruby, and Java]
      ... > I'm pleased to announce the release of Kwartz-php 0.3.0. ... > Kwartz-php is a template system which is available with multi ... > programming language (PHP, Ruby and Java). ... Technologies like ASP, JSP, and PHP were born ...
      (comp.lang.php)
    • Re: [ANN] Kwartz-php 0.2.0 - a template system for PHP, Ruby, and JSP
      ... > I'm pleased to announce the release of Kwartz-php. ... it is the first template system which realized the concept of ... XSL is also language-independent as it does not care which language was used ... I have a development infrastructure written in PHP in which all XHTML output ...
      (comp.lang.php)
    • Re: Best Practice - Constant Page Layouts
      ... It keeps the logic layer and view layer apart, ... // php section ... Smarty or another pre-existing template system. ... website,www.Base2WebDesign.com, has the exact same layout throughout ...
      (comp.lang.php)
    • Re: Can PHP control a form value directly
      ... Can PHP control a form value directly? ... Normally php is simply generating text to send to the browser, so yes, ... technique provided by the template system to set a value. ... looks similarly to Javascript will depend on the template system. ...
      (comp.lang.php)