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... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php