<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.invenzzia.org/en/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Invenzzia... in English - Tag - releases</title>
  <link>http://blog.invenzzia.org/en/</link>
  <atom:link href="http://blog.invenzzia.org/en/feed/tag/releases/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>en</language>
  <pubDate>Fri, 12 Aug 2011 10:34:54 +0100</pubDate>
  <copyright>Copyright &amp;copy; Invenzzia</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Open Power Template 2.1 almost finished</title>
    <link>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished</link>
    <guid isPermaLink="false">urn:md5:eba236b8bc1bf4232eb6cc3e5f80114d</guid>
    <pubDate>Mon, 01 Nov 2010 20:06:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>development</category><category>documentation</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Works on Open Power Template 2.1, the greatly extended successor of OPT 2.0 are almost finished. I know it was a long year, but finally we reach a point where we can plan our next steps and think, what to do next. The current package will be soon packed as OPT 2.1-BETA2, and the remaining functionality will appear as a part of the first Release Candidate.&lt;/p&gt;    &lt;h2&gt;What is not finished yet?&lt;/h2&gt;


&lt;p&gt;Basically speaking, there are three things left to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement &lt;code&gt;Opt_Format_NestedTree&lt;/code&gt; data format for &lt;code&gt;opt:tree&lt;/code&gt; instruction which will allow to push a nested array in order to render a valid HTML tree.&lt;/li&gt;
&lt;li&gt;Finish the migration module which will allow to run OPT 2.0 templates and convert them on-the-fly to the new release.&lt;/li&gt;
&lt;li&gt;Finish the support for &lt;code&gt;opt:append&lt;/code&gt; and &lt;code&gt;opt:prepend&lt;/code&gt; tags in &lt;code&gt;opt:switch&lt;/code&gt; instruction in order to make possible to add dynamic attributes in this way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The list of implemented features and changes is really impressive. Just a quick look at the code repositories of 2.0 and 2.1 branch can tell us that OPT 2.1 is another revolution, with many clean-ups and improvements.&lt;/p&gt;


&lt;h2&gt;Further release process&lt;/h2&gt;


&lt;p&gt;Unfortunately, in order to see a stable release of OPT 2.1, we still need some time. Although I test the new branch in different situations and environments, including real projects, the debugging process is not finished yet. The test code coverage is not as high as I'd like and it needs to change. Another critical issue is the new documentation, where the progress is very low.&lt;/p&gt;


&lt;h2&gt;Plans&lt;/h2&gt;


&lt;p&gt;I'll do my best to release OPT 2.1 stable before February 2010, because that month I expect to start works on Open Power Template 3. Lots of things have changed in the PHP world last time, especially where it comes to the frameworks and the application design theory. Open Power Libs 2 was a pioneer in several library design concepts, such as universal autoloader or the need for a small, unified core, but its internal structure and design does not meet current code quality standards. Open Power Template 2 suffers from the same issue. Other development teams from such projects, as Doctrine and Symfony, have already started works on improving them, and so must we.&lt;/p&gt;


&lt;p&gt;So, what is the exact plan for Open Power Template and Open Power Libs 3? The overall project philosophy will remain the same, which means that if you already know how to use OPT 2.x, you should not have any problems with 3.x. I plan not to make significant changes to the template language, because it has already been polished in the current releases. We will still use good, old XML syntax, sections, switches, components, etc. The only key goal is to make the language fully secure. It means that from the template level, it should not be possible to cause neither PHP fatal, parse error nor access any forbidden function and class.&lt;/p&gt;


&lt;p&gt;The main revolution will take place in the library programming interface. The OPL core will use some third party components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Symfony 2 Event Dispatcher&lt;/li&gt;
&lt;li&gt;Symfony 2 Console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Furthermore, there will be fewer components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the universal autoloader,&lt;/li&gt;
&lt;li&gt;configuration object,&lt;/li&gt;
&lt;li&gt;error handler,&lt;/li&gt;
&lt;li&gt;debugging interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open Power Template 3 public API will be more compact. I very like the job the guys from Doctrine did in Doctrine 2 project and I'd like to do the same with my library. The API should be simple and intuitive, there should be no magic, and the dependency injection should be done explicitely. The registry and the static stuff will be thrown away.&lt;/p&gt;


&lt;p&gt;I'd also like to make the compiler itself completely independent from the standard public API which should allow to use it without it. Its API will be also polished, especially when it comes to data formats, instructions and extending. Here, the following things are going to be implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;data formats will be composed of simple PHP interfaces, which should simplify the entire API and ease the data format building.&lt;/li&gt;
&lt;li&gt;the compiler will make a good use of the reflection mechanism to find out what a particular class provides.&lt;/li&gt;
&lt;li&gt;function packages will simplify installing new template function sets.&lt;/li&gt;
&lt;li&gt;the compiler internals will be separated from the concrete template language implementation - all the languages, including the default one, will be installed by registering a new language class object in the compiler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The expected result is simple: the most advanced, the most powerful, the fastest, the one, where writing templates is also the fastest, and the greatest template engine in the world. Ever.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-almost-finished#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/71</wfw:commentRss>
      </item>
    
  <item>
    <title>Open Power Template 2.1-beta1</title>
    <link>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-beta1</link>
    <guid isPermaLink="false">urn:md5:55917aea4fd74336558ec88f077ec80e</guid>
    <pubDate>Sat, 04 Sep 2010 10:08:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>development</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;I'm pleased to inform that after a year of work, Open Power Template 2.1 goes into a beta testing phase. As you might expect, the new branch is a revolutionary evolution. Although it was born in pain, the new development stage is a fact. In this post I'd like to describe briefly the changes and new stuff that can be found there. Meanwhile, if you look for stable releases, OPT 2.0.6 is also available to download. It fixes four bugs.&lt;/p&gt;    &lt;h2&gt;Why so long?&lt;/h2&gt;


&lt;p&gt;There is no a single answer for this question. Personally, I like this one: because it's Open Power Template and it's made by me. Step by step, without a hurry, with proper amount of time to think and design the new features. Another thing are my computer science studies which do not let me give a bigger priority for this project. What is more, the library itself is so complex right now, that there begin to appear the problems like &quot;well, it's great idea, but how to implement it in PHP?&quot; I think that without a variety of new features in PHP 5.3, finishing OPT 2.1 would be impossible.&lt;/p&gt;


&lt;h2&gt;Changes&lt;/h2&gt;


&lt;p&gt;The exact description, what has changed and how to use it, can be found in README files appended to the package. Here, I'm just going to list them in order to show, how much has been done. The size of the source code is almost twice as large, as in OPT 2.0, and I don't mean here those parts that were present, but have been rewritten from scratch. Most of the new source code lies in the phpdoc comments and the template compiler. But let's get back to our list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introducing the compatibility with &lt;a href=&quot;http://groups.google.com/group/php-standards/web/psr-0-final-proposal&quot; hreflang=&quot;en&quot;&gt;PSR-0&lt;/a&gt; class naming standard, with the exception to the namespace use.&lt;/li&gt;
&lt;li&gt;Exception system cleanup.&lt;/li&gt;
&lt;li&gt;New, simpler and faster autoloader compatible with PSR-0.&lt;/li&gt;
&lt;li&gt;New error handler.&lt;/li&gt;
&lt;li&gt;Changes in Opt_Caching_Interface&lt;/li&gt;
&lt;li&gt;Decomposition of the compiler which has become a true framework for writing any template language we want:
&lt;ul&gt;
&lt;li&gt;We can create new parsers.&lt;/li&gt;
&lt;li&gt;We can create new expression engines.&lt;/li&gt;
&lt;li&gt;We can install new expression modifiers.&lt;/li&gt;
&lt;li&gt;We can add new node types to the OPT-XML internal representation.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Added support for ambiguous instructions (np. opt:else) that are linked with concrete processors according to their context.&lt;/li&gt;
&lt;li&gt;Improved instruction API.&lt;/li&gt;
&lt;li&gt;Improved data format specifications.&lt;/li&gt;
&lt;li&gt;Improved compilation algorithm.&lt;/li&gt;
&lt;li&gt;Rewritten and optimized operations on OPT-XML tree.&lt;/li&gt;
&lt;li&gt;Brand-new LALR-grammar expression parser with new features, such as container constructors, named function arguments and compound operators.&lt;/li&gt;
&lt;li&gt;New parser based on XMLReader extension available.&lt;/li&gt;
&lt;li&gt;New instruction: &lt;code&gt;opt:switch&lt;/code&gt; which is like sections for loops. (partially implemented)&lt;/li&gt;
&lt;li&gt;New, alternative syntax for &lt;code&gt;opt:if&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Long ifs, a feature that allows to put unconditional pieces of code between conditional &lt;code&gt;opt:if&lt;/code&gt; branches.&lt;/li&gt;
&lt;li&gt;New instruction: &lt;code&gt;opt:procedure&lt;/code&gt; to create procedures (an equivalent of snippets, but evaluated during the runtime).&lt;/li&gt;
&lt;li&gt;Snippets can take arguments.&lt;/li&gt;
&lt;li&gt;Actually, procedures can take them, too :).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;opt:root include&lt;/code&gt; replaced with a new instruction: &lt;code&gt;opt:load&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New section attribute: &lt;code&gt;from&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Alternative for &lt;code&gt;opt:show&lt;/code&gt;: &lt;code&gt;opt:body&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Changed the way the expressions are deployed within HTML attributes.&lt;/li&gt;
&lt;li&gt;Improved instruction naming convention. Now all of them use &lt;code&gt;opt:name-with-pauses&lt;/code&gt; style.&lt;/li&gt;
&lt;li&gt;Some instructions have got simplified and improved names.&lt;/li&gt;
&lt;li&gt;Data formats for tree rendering.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;opt:selector&lt;/code&gt; i &lt;code&gt;opt:attribute&lt;/code&gt; are being rewritten to the API of &lt;code&gt;opt:switch&lt;/code&gt; (to be implemented)&lt;/li&gt;
&lt;li&gt;Data formats for components and blocks. (to be implemented)&lt;/li&gt;
&lt;li&gt;Backward compatibility mode that allows to use OPT 2.0 templates without any changes, and can perform the full conversion (partially implemented)&lt;/li&gt;
&lt;li&gt;Command-line interface. (to be implemented)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And we have to remember that OPT 2.1 requires PHP 5.3 or newer and will not work on PHP 5.2.&lt;/p&gt;


&lt;p&gt;Many users would also appreciate that OPT 2.1 will have a brand new user manual with different content structure.&lt;/p&gt;


&lt;h2&gt;Plans for the future&lt;/h2&gt;


&lt;p&gt;The plans for the future are very simple: to finish OPT 2.1 and start developing OPT 3.0 as soon as possible. OPT 3 will focus primarily on improving the library API, whereas there will be no bigger changes in the template language. The most important improvement will be the introduction of true type system and cascading data formats which were originally planned to appear in OPT 2.1. Perhaps, there will be some new instructions: maybe some meta-programming features, but here I'm not sure yet whether we actually need it.&lt;/p&gt;


&lt;p&gt;Going back to the API issue, we should prepare for a big revolution here, because OPT 3 will be namespaces. More exact plans are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplification and improving the names of some interfaces.&lt;/li&gt;
&lt;li&gt;Throwing away the magic and unnecessary stuff from the programming interfaces.&lt;/li&gt;
&lt;li&gt;Improving the specialization of classes.&lt;/li&gt;
&lt;li&gt;Integration with various code foundations. The OPL core will be reduced - probably it will only offer an autoloader, debugging system and error handling, whereas the other functionality will be included from various third party libraries. The most probable candidates are Event Dispatcher, CLI and Template Component from Symfony.&lt;/li&gt;
&lt;li&gt;The compiler will be independent from the public classes.&lt;/li&gt;
&lt;li&gt;Automatic data format detection.&lt;/li&gt;
&lt;li&gt;External compilation service. The idea came by analyzing a question I received on PHPCon Poland: &quot;Let's say we have a blogging system and give the users the opportunity to edit the templates. What would happen, if 100 of them modified their templates in the same time&quot;. Currently the answer is simple: the server would slow down for a moment due to 100 template compilations in the background. In OPT 3.0, the compiling service would be deployed somewhere else and process the compilation requests sequentially. The requests would be sent directly by the blog control panel.&lt;/li&gt;
&lt;li&gt;Make the template language secure for the script. I mean it will be impossible to cause a fatal error or gain access to some internal interfaces through the templates.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Summary&lt;/h2&gt;


&lt;p&gt;I'm satisfied there are quite a lot people who use Open Power Template. Developing this library is not a trivial task, but I think it is worth it. One thing that make me love template engines is the fact that we can put a megabyte of source code to them, people get shocked &quot;oh man, this cow must be so slooow&quot;, but it turns out that this cow is often faster and more agile than pure PHP :).&lt;/p&gt;


&lt;p&gt;There are only two problems that confuse me. OPT is an one-man project. The compiler is so complex that many people are simply afraid of discovering, what's going on right there. Even Invenzzia Group which makes a lot of good work with other libraries, does not help much with the compiler internals due to the lack of experience and understanding it.&lt;/p&gt;


&lt;p&gt;Similar thing happens to the template language. Its biggest pro: flexibility and breaking the schemes is the biggest con, because it requires from the programmer to get used to it. We can get a real satisfaction from it, once we understand the project philosophy and break with the old thinking patterns which is not so easy.&lt;/p&gt;


&lt;p&gt;In both cases, the necessary thing are tutorials. When it comes to the template language, the situation is not so bad, but people who would like to learn the compiler internals, have almost nothing, except a small &quot;Hacker's guide&quot; on the project wiki.&lt;/p&gt;


&lt;p&gt;Anyway, the project is still under an active development and it has the future. I'm waiting for any suggestions and ideas which will help to make it better and better.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-beta1#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Open-Power-Template-2.1-beta1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/70</wfw:commentRss>
      </item>
    
  <item>
    <title>Open Power Template 2.0.0 is ready!</title>
    <link>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0.0-is-ready%21</link>
    <guid isPermaLink="false">urn:md5:289d171afca92f335d23613184a0be22</guid>
    <pubDate>Tue, 14 Jul 2009 09:14:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>history</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Finally, after a 1.5 years of the development process, we managed to release the first stable version of Open Power Template. The road was very long but I hope that it was worth it. In this short entry, I'd like to make a small introduction to the project history for you, as it is quite interesting and could give some clue, how this all began.&lt;/p&gt;    &lt;p&gt;Open Power Template is a quite old project, lasting for almost five years now. The development started in November 2004, as a small template engine for the open-source discussion board project called Open Power Board. The library was a creative variation of the Smarty engine, and I was the right person in the team to write it, as I was writing small template engines much earlier and had some experience in this area. Fortunately or not, the OpenPB project failed and my library was the only which survived the crash. After some huge code revisions, I released the first stable version, 1.0.0 in July 2006, three years ago. At the first sight, the template engine was quite similar to Smarty, especially because it used curly brackets, too. However, we could find there some ideas that were later improved and featured in the 2.0 branch. OPT 1.0.0 contained:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sections&lt;/li&gt;
&lt;li&gt;Components&lt;/li&gt;
&lt;li&gt;Snippets (under different name)&lt;/li&gt;
&lt;li&gt;I18n support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1.1 branch brought the pagination support and tree rendering instruction. The template engine did not understand the document structure, but the parser used some ideas taken from XML parsers. For example, it constructed a node tree for the content similar to DOM, and the nodes were instruction tags and the text content. Furthermore, there was a feature called &lt;em&gt;XML Compatibility Mode&lt;/em&gt; which replaced the curly brackets with XML-like instruction delimiters. However, this was only a visual change.&lt;/p&gt;


&lt;p&gt;Early in 2007, after some talks with the users, I started thinking about using a real XML parser in Open Power Template. On my blog, I published a note dated to April 19, where I suggested that a compiler with an XML parser could be written, as an extra compiler for the project. It did not mean that the works began then, as I was beginning my studies on AGH University in Cracow and had little time to deal with it, too. The first lines of code were written about seven months later, in November. On November 23, I wrote on my blog that the parser loaded the first XML document into memory, and a couple of days later it compiled its first (very simple) template.&lt;/p&gt;


&lt;p&gt;OPT was a really productive project. Soon, I realized, that the old infrastructure from OpenPB used so far is crappy and unreliable which led to the formation of Invenzzia Group in January. You may ask where the name came from. We were thinking about it very long, and the further, the more stupid ideas were coming into our minds. As I was fascinated with linguistics and artifical (constructed) languages, we opened the dictionary of one of my languages, Ferrinti with the word: &lt;code&gt;invenzzia - invention&lt;/code&gt;. By the way, it has nothing to do with Polish language, where the word for &lt;em&gt;invention&lt;/em&gt; is &lt;em&gt;wynalazek&lt;/em&gt; and &lt;em&gt;inwencja&lt;/em&gt; means something completely different.&lt;/p&gt;


&lt;p&gt;A couple of months later, I was becoming more and more annoyed with DocBook, especially because of the lack of any simple-in-use framework for generating user manuals and documentations from them. Because I did not want to deal with various XML parsers, incompatibility issues between Windows, Linux and everything else, I decided to write a completely new tool in PHP. This was the second project inspired by Open Power Template and it is known now as TypeFriendly. At the same time, we closed the 1.1 branch of OPT, to focus on the other projects. In July, the branch was actually rewritten from scratch, introducing a completely new API that had nothing to do with the earlier versions, as it was using many new features, such as autoloading, or better use of exceptions. Furthermore, I removed the explicit recursion from the compiler that produced very serious trouble due to the PHP stack limitations. Precisely after a year, on November 23, 2008, Invenzzia Group released the last &lt;em&gt;2.0-DEV&lt;/em&gt; version with actually all the planned features finished and began the beta-tests and the debugging process. After deep analysis, some parts of the code were rewritten once more (notably sections and data formats), providing a more stable and flexible source code, and many other features were widely tested both with unit tests and the real projects.&lt;/p&gt;


&lt;p&gt;In March, I published the first revision of the Zend Framework port on our SVN. The community created a port for Kohana framework a couple of months earlier. I started also thinking about the tutorials. In the last few days, we managed to finish the user manual and the huge tutorial &lt;em&gt;A photo gallery with Doctrine and Open Power Template&lt;/em&gt;, and we decided that we are ready to release the first stable version. And here we are!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0.0-is-ready%21#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0.0-is-ready%21#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/62</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #5</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5</link>
    <guid isPermaLink="false">urn:md5:9501eb1b8405bb1cf988d05738cef0bf</guid>
    <pubDate>Wed, 08 Jul 2009 13:28:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>development</category><category>documentation</category><category>OPF</category><category>OPT2</category><category>releases</category><category>summary</category><category>typefriendly</category>    
    <description>&lt;p&gt;Welcome back after a short break. Although there were no summaries in the last month, Invenzzia projects are still active and maintained. We have released two new versions in June, and now we are reaching the moment of releasing... the first stable version of Open Power Template 2! Stay with us and read more about the progress and the current status of the projects.&lt;/p&gt;    &lt;h2&gt;Open Power Template 2&lt;/h2&gt;


&lt;p&gt;The project is actually finished and we are expecting to deal with all the formalities in the next few days. There is only one chapter missing in the user documentation and if you would like to check the code right now, you can find it on our Subversion repository. So, what would take so long? The answer is simple: the tutorials. Since April, I have been working on a huge article entitled &quot;A photogallery with Doctrine and Open Power Template 2.0&quot; showing the process of writing a web gallery using the libraries mentioned in the title. Furthermore, it is going to be available in two language versions: Polish and English. We have to finish the translation and rewrite it into Markdown, so that it could be published on Invenzzia. Anyway, the development process is over and now we can focus on implementing the new features and the new libraries.&lt;/p&gt;


&lt;h2&gt;TypeFriendly 0.1.2&lt;/h2&gt;


&lt;p&gt;A couple of weeks ago, we released TypeFriendly 0.1.2 with many new features, such as appendix support and tag manager. Since then, there were new commits and new works-in-progress. eXtreme improves the layout of the chapter headers, there are expected new tags and fixed some minor bugs.&lt;/p&gt;


&lt;h2&gt;What's next?&lt;/h2&gt;


&lt;p&gt;I plan to finish the caching system for OPT that will be distributed with Open Power Classes, and start developing the source code of long-awaited Open Power Forms. We have an idea, what we want to get and how to achieve the goals.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-5#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/61</wfw:commentRss>
      </item>
    
  <item>
    <title>Open Power Template 2.0-RC1</title>
    <link>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0-RC1</link>
    <guid isPermaLink="false">urn:md5:f4febc94a94955293cab40218faab3b7</guid>
    <pubDate>Tue, 12 May 2009 13:06:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Finally, the first Release Candidate of Open Power Template is available to download, after 4 months of testing and implementing the remaining features. The library seems to be completed and stable enough for both development and production environments. Of course, there is still a small possibility that a fatal bug will be found, but I do not think this will happen, as there are lots of unit tests present and the code has been checked with two real-world web applications.&lt;/p&gt;    &lt;h2&gt;Where to download?&lt;/h2&gt;


&lt;p&gt;Of course, from our website: &lt;a href=&quot;http://www.invenzzia.org/en/download&quot; hreflang=&quot;en&quot;&gt;Invenzzia&lt;/a&gt;. There are available the ordinary packages, and moreover, for the first time we publish the PHAR-s. PHAR means &lt;em&gt;PHP ARchive&lt;/em&gt; - it is a package of executable PHP code that works much like JAR-s in Java. It is going to become a part of the official PHP release since 5.3.0 version. Unfortunately, our web system is not prepared to publish so many different files in one branch, so I publish the links right here till the problem will be solved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://static.invenzzia.org/files/opt-phar-2.0-rc1.tar.bz2&quot; hreflang=&quot;en&quot;&gt;PHAR-s in TAR.BZ2 format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://static.invenzzia.org/files/opt-phar-2.0-rc1.tar.gz&quot; hreflang=&quot;en&quot;&gt;PHAR-s in TAR.GZ format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://static.invenzzia.org/files/opt-phar-2.0-rc1.zip&quot; hreflang=&quot;en&quot;&gt;PHAR-s in ZIP format&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The packages contain two PHAR-s: for OPL and OPT, license texts and the README. They do not include the documentation.&lt;/p&gt;


&lt;h2&gt;What now?&lt;/h2&gt;


&lt;p&gt;Well, Release Candidate does not mean the end. There is also the stable release, and lots of plans for the 2.1 branch. However, for some time the development process of OPT will slow down, as there are some other projects that need our urgent attention. First of all, we have all the resources for the programmers: tutorials, tips, case studies etc. Open Power Template brings a completely new philosophy of creating the presentation layer and there must be good articles available in order to show, how to make a good use of it. Moreover, there are next libraries on the way: Open Power Classes, Open Power Forms and the Zend Framework port.&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;At the end, we would like to thank all the current users of the library, especially those ones who have helped us with the development process. These projects are created for you.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0-RC1#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Open-Power-Template-2.0-RC1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/58</wfw:commentRss>
      </item>
    
  <item>
    <title>Invenzzia Summary #2</title>
    <link>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2</link>
    <guid isPermaLink="false">urn:md5:5cdc479eed2d88d4fd421c561dd3e474</guid>
    <pubDate>Tue, 28 Apr 2009 14:22:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Summaries</category>
        <category>OPT2</category><category>releases</category><category>summary</category><category>tutorials</category><category>zend framework</category>    
    <description>&lt;p&gt;Invenzzia Summaries are the way to inform about what's going on in Invenzzia and its open-source projects. In the second episode we will talk about incoming OPT 2.0-RC1, OPL port for Zend Framework and the incoming first bigger practical tutorial about OPT.&lt;/p&gt;    &lt;h2&gt;OPT 2.0-RC1&lt;/h2&gt;


&lt;p&gt;The source code of OPT is almost ready to publish the Release Candidate 1. The remaining issues concern the user manual and the examples that should be included now in some form. In the last few days, the source code itself was enriched with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The unit tests for the template functions.&lt;/li&gt;
&lt;li&gt;The final version of the caching API.&lt;/li&gt;
&lt;li&gt;Fixes of the bugs found in the Beta3 release.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a small change in the previously accepted API. The &lt;code&gt;Opt_Component_Interface::setDatasource()&lt;/code&gt; method does not require the reference now which allows to read the data from objects and any other forms of expressions. We are sorry for this oversight and the necessity of updating your component APIs.&lt;/p&gt;


&lt;h2&gt;Recently fixed bugs&lt;/h2&gt;


&lt;p&gt;The bugs fixed in the last days include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;(OPT) - bug #81 - The &lt;code&gt;opt:tree&lt;/code&gt; instruction did not perform the error checking, which could be used to produce the invalid output code if the &lt;code&gt;depth&lt;/code&gt; parameter was not set properly. Currently, the depth does not have to start with 0, and each raise above the initial depth is reported with an exception.&lt;/li&gt;
&lt;li&gt;(OPT) - bug #80 - The expression parser did not capture the single occurences of the apostrophes. The output code was not affected, so this was not a critical problem, but now the parser throws an exception in this situation.&lt;/li&gt;
&lt;li&gt;(OPT) - not reported - the defined components were generating invalid PHP code.&lt;/li&gt;
&lt;li&gt;(OPT) - not reported - the output systems used invalid constant indicating the XML mode.&lt;/li&gt;
&lt;li&gt;(TypeFriendly) - bug #79 - If the header section in the source document was not ended with a valid section delimiter, the script was going into the infinite loop.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - the components attempted to read the CSS classes for the invalid fields from wrong template variables.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - fixed the implementation of &lt;code&gt;url()&lt;/code&gt; template function.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - fixed the problem with Invenzzia_Controller_Response_Http and flushing the output buffer which caused to produce the &quot;1&quot; string in the output.&lt;/li&gt;
&lt;li&gt;(ZFPort) - not reported - some of the overloaded methods had wrong prototypes which caused E_STRICT messages.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;OPL port for Zend Framework&lt;/h2&gt;


&lt;p&gt;Recently, the port has been extended with the cache wrapper that allows to use the Zend_Cache component to cache the OPT views using the new OPT caching interface. Moreover, during April we have removed some annoying bugs in the code and tested the port in the real project. It works nice, but still needs some extra functionality. We are going to start the pagination support soon.&lt;/p&gt;


&lt;h2&gt;OPT tutorial&lt;/h2&gt;


&lt;p&gt;OPT provides the end users a lot of features, so nobody should be suprised that there is a need to write good practical tutorials for this library. In the last weeks, I have been working on the article entitled 'A photo gallery with Doctrine and OPT'. It shows the basic usage of Open Power Template and &lt;a href=&quot;http://www.doctrine-project.org/&quot; hreflang=&quot;en&quot;&gt;Doctrine&lt;/a&gt; library while writing a simple photo gallery script. The article will be available in two language versions: English and Polish and distributed under the Creative Commons license together with the accompanying, ready-to-run source code. Currently, the article is on the translation stage and will be published soon after the OPT 2.0-RC1 appearance.&lt;/p&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;


&lt;p&gt;We are very happy that the development stage of Open Power Template finally reaches the happy end. We know it was very long (a year and five months), but there was a lot of work to do. We are not going to stop here. Some of you may have probably noticed that the bugtacker is full of TODO tickets for the 2.1 branch which are going to bring even greater revolution in the template engine world.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Invenzzia-Summary-2#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/56</wfw:commentRss>
      </item>
    
  <item>
    <title>Zend Framework port is available!</title>
    <link>http://blog.invenzzia.org/en/post/Zend-Framework-port-is-available%21</link>
    <guid isPermaLink="false">urn:md5:afb294441c208e9c95de9777a6437187</guid>
    <pubDate>Wed, 25 Mar 2009 15:12:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Projects</category>
        <category>framework</category><category>OPL</category><category>OPT2</category><category>releases</category><category>zend framework</category>    
    <description>&lt;p&gt;I've recently uploaded the first revision of Open Power Libs port for Zend Framework to our SVN repositories and it is available there for public audience. The port is not completed yet, but the basic functionality is present and seems to work. I encourage everyone to test it and submit suggestions or noticed bugs. The package includes a test ZF application, and the source code is well-commented. I'll put some extra information on wiki soon, as well as set up the &quot;real&quot; user manual.&lt;/p&gt;    &lt;h2&gt;How to obtain?&lt;/h2&gt;


&lt;p&gt;If you have a SVN client, you can download it like any other Invenzzia project:&lt;/p&gt;

&lt;pre&gt;
svn co http://svn.invenzzia.org/svn/opl4zf/trunk
&lt;/pre&gt;


&lt;p&gt;Note that you must also download Zend Framework and OPL.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/Zend-Framework-port-is-available%21#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/Zend-Framework-port-is-available%21#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/51</wfw:commentRss>
      </item>
    
  <item>
    <title>OPT 2.0-beta2</title>
    <link>http://blog.invenzzia.org/en/post/OPT-2.0-beta2</link>
    <guid isPermaLink="false">urn:md5:018c3371d26b97bf3ba4c641e8af2aad</guid>
    <pubDate>Sat, 21 Feb 2009 09:22:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>development</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;It's true, the new beta version of Open Power Template is available to download. It was planned to be released a week ago, but because of problems with SVN I didn't manage to do that (again, but hopefully for the last time). This is mostly a bugfix release, but there are some small improvements and changes in the component API, which was not documented then. The changes are not too big and were quite necessary to be introduced.&lt;/p&gt;    &lt;p&gt;The changes in the component and block API:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;setOptInstance()&lt;/code&gt; became &lt;code&gt;setView&lt;/code&gt; and takes the current &lt;code&gt;Opt_View&lt;/code&gt; object as an argument. Now the components and blocks can refer to the template variables.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;createAttributes()&lt;/code&gt; became &lt;code&gt;manageAttributes()&lt;/code&gt;, and moreover, the semantics has been changed. The new method takes an array of tag attribute values and returns the modified version. OPT translates it to the valid XML attribute list.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The tutorials can be found in the documentation. Another improvement are the &lt;code&gt;get()&lt;/code&gt; and &lt;code&gt;getGlobal()&lt;/code&gt; methods in &lt;code&gt;Opt_View&lt;/code&gt; that allow to read the template variable values from the view object.&lt;/p&gt;


&lt;p&gt;The things that need to be done now are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To check the caching port interface.&lt;/li&gt;
&lt;li&gt;To test several rarely-used compiler API features.&lt;/li&gt;
&lt;li&gt;To check, whether all the features mentioned in the documentation are implemented and vice versa.&lt;/li&gt;
&lt;li&gt;To fix more bugs :).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By the way, it is possible that in a few next days, there will be PHAR files with the beta2 available to download for use with PHP 5.3.&lt;/p&gt;


&lt;p&gt;The library can be downloaded from &lt;a href=&quot;http://libs.invenzzia.org/en/download&quot; hreflang=&quot;en&quot;&gt;our file repositories&lt;/a&gt; and the English documentation can be found &lt;a href=&quot;http://www.invenzzia.org/docs/opt2-en/&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/OPT-2.0-beta2#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/OPT-2.0-beta2#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/47</wfw:commentRss>
      </item>
    
  <item>
    <title>OPT 2.0.0-beta1 released</title>
    <link>http://blog.invenzzia.org/en/post/OPT-2.0.0-beta1-released</link>
    <guid isPermaLink="false">urn:md5:cbb9f97b7390941653039d1e10994582</guid>
    <pubDate>Tue, 06 Jan 2009 22:45:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Well, after many adventures with SVN and recently discovered problems with XML prologs and DTD I finally managed to release the first beta version of Open Power Template. From now, we are going to focus on removing as many bugs and problems as possible and we need here your help. Furthermore, we also need to complete the English manual, which is quite big now, but still does not explain some issues.&lt;/p&gt;    &lt;p&gt;I hope the library will mature soon, because I want to start works on next libraries: Open Power Forms and Open Power Classes. Thankfully, our quite small community is quite active. Recently, Nowaker informed me he prepared a port for Kohana framework and he is going to release it, soon. As eXtreme will complete the new Invenzzia website, we will be able to put such add-ons in one place, as well as tutorials and sample projects.&lt;/p&gt;


&lt;p&gt;The library can be found in our &lt;a href=&quot;http://libs.invenzzia.org/en/download&quot; hreflang=&quot;en&quot;&gt;download&lt;/a&gt; sites. The packages contain English manual, which is also available &lt;a href=&quot;http://www.invenzzia.org/docs/opt2-en/&quot; hreflang=&quot;en&quot;&gt;on-line&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/OPT-2.0.0-beta1-released#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/OPT-2.0.0-beta1-released#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/43</wfw:commentRss>
      </item>
    
  <item>
    <title>One year of hard work</title>
    <link>http://blog.invenzzia.org/en/post/One-year-of-hard-work</link>
    <guid isPermaLink="false">urn:md5:75e09a4f6268c6b49709df680bacc1c8</guid>
    <pubDate>Thu, 20 Nov 2008 18:59:00 +0100</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>Open Power Template</category>
        <category>development</category><category>OPT2</category><category>releases</category>    
    <description>&lt;p&gt;Somewhere in the middle of November 2007, I wrote the first (working!) lines of the Open Power Template 2.0.0 source code. After a year of hard work, I've already uploaded a revision that finally gives you all the invented features implemented. For that time, OPTv2 grew and changed its shape. The first development releases resembled OPT 1.1.x when it comes to API and some features. They were just ported to the new XML compiler. Nowadays, OPT is a totally different library. It is much more modularized and designed to make the integration with frameworks easier. There is still a lot to do. The incoming release will be the last one with the &quot;-dev&quot; prefix, and in the next few weeks, the beta versions will appear, then Release Candidates and at last, the first stable release.&lt;/p&gt;    &lt;p&gt;I still get questions, why the hell I'm writing &quot;yet another template engine if PHP is a template language itself&quot;. In my opinion, it is not PHP which is so good. The template engines are simply too bad, and unsually offer some control structures taken from PHP, variables, put them into different syntax and that's all. Why the hell someone would like to use such stuff if PHP gives him the same things plus object oriented programming to make the code more reusable. But take a look at another issue. Do you think that imperative languages, like PHP, are comfortable enough to be good languages to write, in fact, simple templates? In my opinion, the language that required to be taught, how to display a nested list and escape script data every time we want it is a mistake in this place. Such languages are created to express fast and advanced algorithms, where we need the full control over the process, not to take some data from the script and put them in a string. Yes, we can modularize them with loads of classes, interfaces etc. but is it still a comfortable way and a good use of OOP? In my opinion - no.&lt;/p&gt;


&lt;h2&gt;What give us new languages&lt;/h2&gt;

&lt;p&gt;When people noticed that writing in assembler is too complicated, they invented Fortran and Lisp, the first two high-level programming languages. They allowed to express the same algorithms and calculations in more human-readable form. Later, they invented C and C++, two general-purpose imperative languages. As the WWW appeared on the Internet, another group of people noticed that existing programming languages are too complicated to make dynamic websites. Would you like to deal with memory allocation while writing a CMS? The computers are nowadays faster and faster, and people noticed that sometimes it is much better to use simpler language designed for certain tasks at a cost of performance. In the template engines, the rule is similar. PHP in its current shape was never a good template language, so we try to create something different that simplify this process. And how to achieve this? We have to change the programming paradigm. As we design the new programming language, we can do almost everything with it and add features that are impossible in another language.&lt;/p&gt;


&lt;h2&gt;OPT template language&lt;/h2&gt;


&lt;p&gt;The basis of OPT template language is XML. Unlike PHP, OPT understands entire structure of the XHTML code in the templates and checks its syntax before we see something in the browser. All the language constructs are allowed to manipulate the code in the way that is impossible in PHP, using an interface similar to DOM. They can add new attributes, create tags, and the compiler prevents them from generating invalid output. Moreover, I wanted to get rid of programming in the templates, so I designed the control structures in a declarative style. An example of such declarative language is SQL, where you describe, what data you want to have and the database engine decides, how to find them. Here, you simply inform, what you want to see, and the template compiler provides you the implementation. Below, we have an example of displaying a hierarchical list of categories (a category tree):&lt;/p&gt;

&lt;pre&gt;xml
&amp;lt;opt:tree name=&amp;quot;categories&amp;quot;&amp;gt;
 	&amp;lt;opt:list&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;opt:content /&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/opt:list&amp;gt; &amp;lt;!-- 1 --&amp;gt;
  	&amp;lt;opt:node&amp;gt;&amp;lt;li&amp;gt;{$categories.title} &amp;lt;opt:content /&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/opt:node&amp;gt; &amp;lt;!-- 2 --&amp;gt;
  	&amp;lt;opt:treeelse&amp;gt;&amp;lt;p&amp;gt;Sorry, there are no categories in the system.&amp;lt;/p&amp;gt;&amp;lt;/opt:treeelse&amp;gt; &amp;lt;!-- 3 --&amp;gt;
&amp;lt;/opt:tree&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Do you see here any tree rendering algorithm? We have only elegant definitions, how a flat list looks like (1), how a node looks like (2) what what to show if there are no categories. We even know nothing about the data format. The template would not tell us whether the category tree must be provided as a big object or an array, and what are the details of its structure. As OPT provides a complete declarative programming model, similar solutions can be found almost everywhere in OPT. It really works. A couple of days ago I started writing a small website for my friend. Thanks to OPT, I managed to write all the presentation layer in 15 minutes. The fact that I did not have a working script yet did not concern me. I knew that OPT would do everything for me once I finally decide, where the script would return arrays, where objects, and what they would really be. I do not worry about code refactoring, because the templates remain untouched. Once I make a critical change, I simply recompile the templates and that's all. Try to achieve this in pure PHP or Smarty!&lt;/p&gt;


&lt;p&gt;OPT language features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;True XML parser with configurable level of standard-compliance (from strict mode to quirks mode, where everything that is not directly parsed by OPT is a static text).&lt;/li&gt;
&lt;li&gt;Variables are data format independent - the data structures are chosen during the compilation thanks to information from the PHP script.&lt;/li&gt;
&lt;li&gt;Two complete models of handling modular templates: by including and by template inheritance (also dynamic).&lt;/li&gt;
&lt;li&gt;Intuitive support for nested lists&lt;/li&gt;
&lt;li&gt;Smart and semi-automatic data escaping.&lt;/li&gt;
&lt;li&gt;Additional useful instructions to create cyclically changed values or to add separators between elements.&lt;/li&gt;
&lt;li&gt;XML manipulation instructions.&lt;/li&gt;
&lt;li&gt;Support for runtime instructions: blocks and components that are designed especially to deal with HTML forms.&lt;/li&gt;
&lt;li&gt;Code reusability: write once, use everywhere.&lt;/li&gt;
&lt;li&gt;Set of data manipulation and aggregation functions.&lt;/li&gt;
&lt;li&gt;Support for i18n.&lt;/li&gt;
&lt;li&gt;A complete expression language designed especially for use with XML. It includes the complete PHP object access support.&lt;/li&gt;
&lt;li&gt;A basic set of programming structures: conditions and loops, if they are really necessary.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What about the API?&lt;/h2&gt;


&lt;p&gt;OPT source code design resembles Zend Framework conventions, when it comes to the class/method naming and file structure. It is fully objective - the templates are represented in the script as view objects, where we can assign the script results to and set the data format. Once the view is fed with the data, we create an output object and order to render the view. OPT provides two default views: HTTP and Return. The first one sends the results to the browser and maintains the HTTP headers. The second one returns the generated code back to the script. Of couse everything is extendable: you can write new outputs, define new data formats, write new functions, components and even instructions with the powerful compiler API. The management of all this stuff is also simple, because there is a plugin system.&lt;/p&gt;


&lt;p&gt;The templates can be loaded and stored everywhere thanks to PHP streams. All you have to do is to write a new stream wrapper and register it in PHP. The advantage of this solution is that the wrapper can be used with all the file access functions in your script, even with &lt;strong&gt;require&lt;/strong&gt; and &lt;strong&gt;include&lt;/strong&gt;. The output results can be cached, but this time OPT does not provide its own cache handler, allowing the frameworks to do their job. In order to help the programmers manage the templates, the debug console is provided that shows information about the current configuration, executed and compiled templates and the resources used to perform those tasks. The errors are handled with the exceptions and the default error handler provides extra context information with additional explainations, how to fix the problem and where to find the solutions.&lt;/p&gt;


&lt;p&gt;Below, you can see a sample use of OPT in the scripts:&lt;/p&gt;

&lt;pre&gt;php
try
{
	$view = new Opt_View('template_file.tpl');		
	$view-&amp;gt;foo = value;
		
	$out = new Opt_Output_Http;
	$out-&amp;gt;setContentType(Opt_Output_Http::XHTML, 'utf-8'); // Content negotiation available!
	$out-&amp;gt;render($view);
}
catch(Opt_Exception $e)
{
	Opt_Error_Handler($e);
}
&lt;/pre&gt;


&lt;p&gt;However, OPT is not a standalone script. It is the first library in the Open Power Libs series. They share a common core with the basic core that provides the necessary features, like autoloader, configuration, plugin architecture, debugging issues and PHAR support.&lt;/p&gt;


&lt;h2&gt;Project status&lt;/h2&gt;


&lt;p&gt;As I mentioned in the excerpt, all the planned features are currently completed, but not fully tested yet. The code seems to work in all the common use cases, but lots of deeper interactions between various elements are a big unknown. At this time we are going to start beta tests that will take some time. Meanwhile, the following tasks are waiting:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To complete the English documentation.&lt;/li&gt;
&lt;li&gt;To write the complete unit tests and support for PHAR-s.&lt;/li&gt;
&lt;li&gt;To write tutorials, FAQ-s and sample codes for OPT.&lt;/li&gt;
&lt;li&gt;To provide the initial add-ons: Unicode function set for the templates, complex port to Zend Framework and probably Kohana. In the near future we are going to provide the support for Symfony, too.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Moreover, the next OPL projects are going to be opened. Currently, we have already started works on Open Power Classes, a set of small PHP classes to deal with various useful stuff. Our next big goal is Open Power Forms - a complete form handling solution for your script that shows the real power of Open Power Template.&lt;/p&gt;


&lt;h2&gt;How to help?&lt;/h2&gt;


&lt;p&gt;In the next few days, OPT 2.0.0-dev8 should appear. The source code for this version is already available in SVN, but I want to finish some API reference translations. Test it and send us you opinions. If you think you found a bug, use the bugtracker and let us know about it. Do not be afraid to ask - our community is still quite small, but the Invenzzia team is very helpful and does its best to help you deal with the coding problems.&lt;/p&gt;


&lt;h2&gt;To sum up&lt;/h2&gt;


&lt;p&gt;I know this post is full of propaganda stuff, but on this blog, it has not been announced so far and I think it is necessary to show, what this project really is and why we are writing it. Open Power Template is something more that just a template engine - it is probably the first presentation layer framework designed as a complex solution, and in addition - fast. I hope you'll enjoy it. Many people managed to enjoy OPT 1.1.x, and incoming 2.0.0 is simply much better.&lt;/p&gt;


&lt;p&gt;Update: OPT 2.0.0-dev8 is available to &lt;a href=&quot;http://www.invenzzia.org/en/files&quot; hreflang=&quot;en&quot;&gt;download&lt;/a&gt;. The English manual can be found &lt;a href=&quot;http://www.invenzzia.org/docs/opt2-en/&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/One-year-of-hard-work#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/One-year-of-hard-work#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/41</wfw:commentRss>
      </item>
    
  <item>
    <title>TypeFriendly 0.1.0 released</title>
    <link>http://blog.invenzzia.org/en/post/TypeFriendly-010-released</link>
    <guid isPermaLink="false">urn:md5:b75234195a2997b4de10c3707d8670eb</guid>
    <pubDate>Wed, 23 Jul 2008 10:34:00 +0200</pubDate>
    <dc:creator>Zyx</dc:creator>
        <category>TypeFriendly</category>
        <category>development</category><category>releases</category><category>typefriendly</category>    
    <description>    &lt;p&gt;At last, the translation of the manual into English is complete and the source code has been already released as the first version of TypeFriendly, the documentation generator. In is available in &lt;a href=&quot;http://www.invenzzia.org/en/files&quot; hreflang=&quot;en&quot;&gt;Files&lt;/a&gt; on the main site. The user manual is provided in the source form and it works also as an example, so please do not worry that something is missing. All the necessary information to build the HTML version can be found in &lt;code&gt;/info/README.txt&lt;/code&gt; file. All you need is to type one command in the system console. The on-line documentation will be available soon, as we are preparing new website. To get more information about TypeFriendly, take a look at the previous note.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.invenzzia.org/en/post/TypeFriendly-010-released#comment-form</comments>
      <wfw:comment>http://blog.invenzzia.org/en/post/TypeFriendly-010-released#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.invenzzia.org/en/feed/atom/comments/32</wfw:commentRss>
      </item>
    
</channel>
</rss>
