<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>a programmer's best friend - PAT</title>
    <link>http://blog.php-tools.net/</link>
    <description>the blog of pat, the dog</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.0 - http://www.s9y.org/</generator>
    <pubDate>Wed, 25 Feb 2009 08:01:00 GMT</pubDate>

    <image>
        <url>http://blog.php-tools.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: a programmer's best friend - PAT - the blog of pat, the dog</title>
        <link>http://blog.php-tools.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>patTemplate bits and pieces</title>
    <link>http://blog.php-tools.net/archives/165-patTemplate-bits-and-pieces.html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/165-patTemplate-bits-and-pieces.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=165</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=165</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    Well, the code base of patTemplate is pretty majure and new releases quite seldom. Still patTemplate is alive and in heavy use. Working with patTemplate in larger projects always includes writing custom extensions like variable modifier and template functions for it. Every now and then, modules for general use appear and I usually add them to patTemplate&#039;s code base. This way patTemplate grows little by little, even if it&#039;s core stays the same. &lt;br /&gt;
&lt;br /&gt;
Here are some variable modifiers that were recently added: &lt;br /&gt;
&lt;strong&gt;Calc&lt;/strong&gt; (like a pocket calculator), &lt;strong&gt;Dateformat&lt;/strong&gt;, &lt;strong&gt;Numberformat&lt;/strong&gt;, &lt;strong&gt;Sizeformat&lt;/strong&gt; (displays human readable file sizes)  and &lt;strong&gt;Truncate&lt;/strong&gt; (makes verbose text brief).&lt;br /&gt;
&lt;br /&gt;
This week &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1146&amp;amp;entry_id=165&quot;  onmouseover=&quot;window.status=&#039;https://mutlamap.dk&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Torben&#039;s page&quot;&gt;Torben Egmose&lt;/a&gt; provided a template caching driver based on famous Memcache. Now there are five cache backend modules available: &lt;strong&gt;File&lt;/strong&gt;, &lt;strong&gt;eAccelerator&lt;/strong&gt;, &lt;strong&gt;Memcache&lt;/strong&gt;, &lt;strong&gt;MMCache&lt;/strong&gt; and &lt;strong&gt;XCache&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
As mentioned above, there are no major changes, but as usual, it those little bits and pieces that make life enjoyable. 
    </content:encoded>

    <pubDate>Wed, 25 Feb 2009 09:01:00 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/165-guid.html</guid>
    
</item>
<item>
    <title>patError 1.2.0 released</title>
    <link>http://blog.php-tools.net/archives/163-patError-1.2.0-released.html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/163-patError-1.2.0-released.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=163</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=163</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    After a year of inactivity in our blog, there are finally some news worth mentioning. Some minutes ago, I release version 1.2.0 of patError. Although this release contains no new features, it might be interesting for any of you using patError, as I adjusted the code to PHP 5. When using this new version, you will get not E_NOTICE or E_STRICT warnings any more as it has been the case with previous releases. There will also be no E_DEPRECATED errors, when you make the switch to PHP 5.3.0. As usual, you can get the release from our &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1142&amp;amp;entry_id=163&quot;  onmouseover=&quot;window.status=&#039;http://pear.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Visit our PEAR channel&quot;&gt;PEAR channel&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I decided to port patError to PHP 5 while writing the second edition of my &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1143&amp;amp;entry_id=163&quot;  onmouseover=&quot;window.status=&#039;http://www.phpdesignpatterns.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Visit the PHP Design Patterns website&quot;&gt;PHP Design Patterns&lt;/a&gt; book, which covers patError as a depency of patTemplate. 
    </content:encoded>

    <pubDate>Sat, 19 Jul 2008 19:32:58 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/163-guid.html</guid>
    
</item>
<item>
    <title>Testing FIT</title>
    <link>http://blog.php-tools.net/archives/161-Testing-FIT.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/161-Testing-FIT.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=161</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=161</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    I just uploaded the package Testing_FIT to &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1135&amp;amp;entry_id=161&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;PEAR&quot;&gt;PEAR&lt;/a&gt;. Testing_FIT is the PHP and pearish version of Ward Cunningham&#039;s FIT &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1136&amp;amp;entry_id=161&quot; title=&quot;http://fit.c2.com/&quot;  onmouseover=&quot;window.status=&#039;http://fit.c2.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;http://fit.c2.com/&lt;/a&gt;. As such it provides an easy to use framework for acceptance software tests. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;pear install Testing_FIT-beta&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Simply install the PEAR package &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1137&amp;amp;entry_id=161&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net/package/Testing_FIT&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Testing FIT package homepage&quot;&gt;Testing_FIT&lt;/a&gt; browse the examples and write your own test classes. Of course, the PHP version of FIT provides the four basic fixtures: Action-, Column-, Row- and Primitve-Fixture. Also there is a Summary-Fixture that shows some statistics. &lt;br /&gt;
&lt;br /&gt;
You&#039;ll see, writing tests with this PEAR package is a piece of cake. Besides, the basic idea of FIT - using HTML documents providing test data will convince you. 
    </content:encoded>

    <pubDate>Wed, 20 Jun 2007 21:20:31 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/161-guid.html</guid>
    
</item>
<item>
    <title>I18n and such</title>
    <link>http://blog.php-tools.net/archives/160-I18n-and-such.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/160-I18n-and-such.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=160</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=160</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    In lack of a better idea, I founded a new PAT Package: &lt;strong&gt;patI18n.&lt;/strong&gt; So far this package is just a draft and only exists in the SVN repository. As you might guess, patI18n is an abstraction layer for translating issues. Therefore it provides nearly the same interface as the famous GNU Gettext. Still, the actual translation is done by a chain of modules - this way everything is possible and the design stays open to new ideas.&lt;br /&gt;
&lt;br /&gt;
Of course, I didn&#039;t start patI18n out of the blue. Last year, I branched &lt;strong&gt;patForms&lt;/strong&gt; to use Gettext for translation instead of the proprietary internal solution. Since then, we have to maintain two branches of patForms. Yesterday I mended the implementation of patForms&#039; gettext branch to use patI18n. This way patForms got rid of all I18n functions (like setLocle) and stuff. My first tests show that everything works fine - still this code is experimental. However you are invited to check out the new versions and give it a go. &lt;br /&gt;
&lt;br /&gt;
Download the sources from our subversion server:&lt;br /&gt;
&lt;strong&gt;patI18n:&lt;/strong&gt; svn co http://www.php-tools.net/svn/patI18n/trunk/ patI18n&lt;br /&gt;
&lt;strong&gt;patForms:&lt;/strong&gt;  svn co http://www.php-tools.net/svn/patForms/branches/gettext/ patForms&lt;br /&gt;
&lt;br /&gt;
View the source code of patI18n at &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1134&amp;amp;entry_id=160&quot;  onmouseover=&quot;window.status=&#039;http://gerd.exit0.net/pat/i18n/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;patI18n source code and examples&quot;&gt;gERD&#039;s playground&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Mon, 18 Jun 2007 08:45:37 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/160-guid.html</guid>
    
</item>
<item>
    <title>patTemplate 3.1.0 stable released</title>
    <link>http://blog.php-tools.net/archives/159-patTemplate-3.1.0-stable-released.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/159-patTemplate-3.1.0-stable-released.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=159</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=159</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    After two years of development we finally released patTemplate 3.1.0 as a stable version. The changes since the last beta release are minimal. You can read about all changes since the last stable release in the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1132&amp;amp;entry_id=159&quot;  onmouseover=&quot;window.status=&#039;http://pear.php-tools.net/index.php?package=patTemplate&amp;release=3.1.0&amp;downloads&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;patTemplate changelog&quot;&gt;changelog&lt;/a&gt;. patTemplate can be downloaded from our PEAR channel server or easily installed via the PEAR installer:&lt;br /&gt;
&lt;code&gt;$ pear channel-discover pear.php-tools.net&lt;br /&gt;
$ pear install pat/patTemplate&lt;/code&gt;&lt;br /&gt;
More information can be found the the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1133&amp;amp;entry_id=159&quot;  onmouseover=&quot;window.status=&#039;http://trac.php-tools.net/patTemplate&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;patTemplate development&quot;&gt;patTemplate development site&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Sat, 02 Jun 2007 17:30:11 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/159-guid.html</guid>
    
</item>
<item>
    <title>patTemplate Documentation in Bahasa Indonesia</title>
    <link>http://blog.php-tools.net/archives/156-patTemplate-Documentation-in-Bahasa-Indonesia.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/156-patTemplate-Documentation-in-Bahasa-Indonesia.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=156</wfw:comment>

    <slash:comments>4294967295</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=156</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    We are vary proud to hear that there are patTemplate enthusiasts around the world. Actually, we just learned thet there is a &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1093&amp;amp;entry_id=156&quot;  onmouseover=&quot;window.status=&#039;http://direktori.or.id/pattemplate&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;translated documentation&quot;&gt;patTemplate Documentation in Bahasa Indonesia&lt;/a&gt; available. Thanks a lot for translation! 
    </content:encoded>

    <pubDate>Thu, 01 Feb 2007 20:41:10 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/156-guid.html</guid>
    
</item>
<item>
    <title>FIT for PHP</title>
    <link>http://blog.php-tools.net/archives/153-FIT-for-PHP.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/153-FIT-for-PHP.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=153</wfw:comment>

    <slash:comments>4294967243</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=153</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1083&amp;amp;entry_id=153&quot;  onmouseover=&quot;window.status=&#039;http://gerd.exit0.net/pat/PHPFIT/phpfit-egMath.gif&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Screenshot of PHPFIT&#039;s test output&quot;&gt;&lt;img border=&quot;0&quot; width=&#039;77&#039; height=&#039;110&#039;  src=&quot;http://blog.php-tools.net/uploads/phpfit-egMath.serendipityThumb.gif&quot; align=&quot;left&quot; vspace=&quot;7&quot; hspace=&quot;7&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;As I&#039;m going to talk aboit &lt;strong&gt;FIT&lt;/strong&gt; at the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1084&amp;amp;entry_id=153&quot;  onmouseover=&quot;window.status=&#039;http://phpkonferenz.de/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;International PHP Conference 2006&quot;&gt;PHP Conference&lt;/a&gt;, I like to invite you to check out the preview of PHPFIT package. &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1085&amp;amp;entry_id=153&quot;  onmouseover=&quot;window.status=&#039;http://gerd.exit0.net/pat/PHPFIT/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;PHPFIT as tar archive and PEAR  package&quot;&gt;Simply download and install the PEAR package or tar archive.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;FIT&lt;/strong&gt; stands for &lt;em&gt;Framework for Integrated Test&lt;/em&gt; (See: &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1086&amp;amp;entry_id=153&quot;  onmouseover=&quot;window.status=&#039;http://fit.c2.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Homepage of Ward Cunningham&#039;s FIT&quot;&gt;FIT Wiki&lt;/a&gt;) realices acceptance tests with heavy use of HTML documents. Those documents do not just contain the usual &lt;em&gt;blah-blah&lt;/em&gt; but hard &lt;em&gt;facts&lt;/em&gt;. The &lt;em&gt;facts&lt;/em&gt;are actually stored in (HTML) tables. This is where FIT - respectively PHPFIT - comes in. The FIT knows which testing class must be executed for a particular table and which function to call to calculate the results of a specific cell and the framework makes it very easy for you to implement concrete test-classes. &lt;br /&gt;
&lt;br /&gt;
Also FIT simply handles HTML documents. As such they can be viewed a common browsers and even created with Word-a-like editors. Hence FIT goes far beyond what traditional &lt;em&gt;unit testing&lt;/em&gt; offers (FIT is not meant to replace unit-tests) and may enrich your next project.&lt;br /&gt;
&lt;br /&gt;
Hopefully PHPFIT will be available as official PEAR package. Unfortunately I lost my password. So I was not capable to push the proposal any further &lt;img src=&quot;http://blog.php-tools.net/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; But this will change. 
    </content:encoded>

    <pubDate>Tue, 17 Oct 2006 21:34:52 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/153-guid.html</guid>
    
</item>
<item>
    <title>XJConf for PHP</title>
    <link>http://blog.php-tools.net/archives/150-XJConf-for-PHP.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/150-XJConf-for-PHP.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=150</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=150</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    &lt;a class=&#039;serendipity_image_link&#039; href=&quot;http://blog.php-tools.net/exit.php?url_id=1054&amp;amp;entry_id=150&quot; title=&quot;http://php.xjconf.net&quot;  onmouseover=&quot;window.status=&#039;http://php.xjconf.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img width=&#039;110&#039; height=&#039;100&#039; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.php-tools.net/uploads/XJConf.serendipityThumb.gif&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Today, &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1055&amp;amp;entry_id=150&quot; title=&quot;http://www.frankkleine.de&quot;  onmouseover=&quot;window.status=&#039;http://www.frankkleine.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;Frank&lt;/a&gt; and I released the first version of &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1054&amp;amp;entry_id=150&quot; title=&quot;http://php.xjconf.net&quot;  onmouseover=&quot;window.status=&#039;http://php.xjconf.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;XJConf For PHP&lt;/a&gt;. This is a port of the original &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1058&amp;amp;entry_id=150&quot; title=&quot;http://java.schst.net/XJConf&quot;  onmouseover=&quot;window.status=&#039;http://java.schst.net/XJConf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;XJConf&lt;/a&gt; I developed for Java. XJConf allows you to map complex XML documents to data structures by defining the mapping rules in a simple XML-based language. You may define the type for each tag (objects, arrays, primitives) as well as how its attributes, child elements and enclosed character data should be treated. When creating objects, you may also define the setter methods to nest the objects. There are plenty of examples available in the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1058&amp;amp;entry_id=150&quot; title=&quot;http://java.schst.net/XJConf&quot;  onmouseover=&quot;window.status=&#039;http://java.schst.net/XJConf&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;documentation &lt;/a&gt;of the original java version. Most of the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1059&amp;amp;entry_id=150&quot; title=&quot;http://php.xjconf.net/browser/trunk/examples&quot;  onmouseover=&quot;window.status=&#039;http://php.xjconf.net/browser/trunk/examples&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;examples&lt;/a&gt; have been ported to PHP as well by Frank, who did most of the work in this project.&lt;br /&gt;
&lt;br /&gt;
If you want to give XJConf For PHP a try, you can get it via our &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1060&amp;amp;entry_id=150&quot; title=&quot;http://pear.php-tools.net&quot;  onmouseover=&quot;window.status=&#039;http://pear.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;PEAR channel&lt;/a&gt; or from SVN at &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1061&amp;amp;entry_id=150&quot; title=&quot;http://svn.xjconf.net/XJConfForPHP/&quot;  onmouseover=&quot;window.status=&#039;http://svn.xjconf.net/XJConfForPHP/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;http://svn.xjconf.net/XJConfForPHP/&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The fantastic XJConf logo has been developed and designed by &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1062&amp;amp;entry_id=150&quot; title=&quot;https://www.openbc.com/hp/Georg_Rothweiler/&quot;  onmouseover=&quot;window.status=&#039;https://www.openbc.com/hp/Georg_Rothweiler/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; &gt;Georg Rothweiler&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Tue, 05 Sep 2006 21:56:04 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/150-guid.html</guid>
    
</item>
<item>
    <title>New releases of patTemplate and patForms</title>
    <link>http://blog.php-tools.net/archives/148-New-releases-of-patTemplate-and-patForms.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/148-New-releases-of-patTemplate-and-patForms.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=148</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=148</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    After I finally finished my &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1022&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://blog.php-tools.net/archives/146-PHP-Design-Patterns-finished.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://blog.php-tools.net/archives/146-PHP-Design-Patterns-finished.html&quot;&gt;book&lt;/a&gt; (and my contribution to &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1023&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://blog.php-tools.net/archives/142-Exploring-PHP-to-be-published-soon.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://blog.php-tools.net/archives/142-Exploring-PHP-to-be-published-soon.html&quot;&gt;Exploring PHP&lt;/a&gt;) I finally have enough time to work on all of my open source projects again and today made two new releases. &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1024&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://trac.php-tools.net/patTemplate/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://trac.php-tools.net/patTemplate/&quot;&gt;patTemplate 3.1.0b1&lt;/a&gt; contains &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1025&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://pear.php-tools.net/index.php?package=patTemplate&amp;release=3.1.0b1&amp;downloads&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;Read the changelog&quot;&gt;tons of changes&lt;/a&gt; since the last stable version. Most of the features that users have been requesting for years have been incorporated into this release, like the possibility to read templates from a database:&lt;pre&gt;&lt;code&gt;$tmpl = new patTemplate();&lt;br /&gt;
$tmpl-&gt;setRoot(&#039;mysql://root:@localhost/test&#039;, &#039;DB&#039;);&lt;br /&gt;
$tmpl-&gt;readTemplatesFromInput(&quot;SELECT content FROM templates WHERE id=&#039;foo&#039;&quot;, &#039;DB&#039;);&lt;br /&gt;
// or use this syntax:&lt;br /&gt;
$tmpl-&gt;readTemplatesFromInput(&#039;templates[@id=foo]/@content&#039;, &#039;DB&#039;);&lt;/code&gt;&lt;/pre&gt;It is now also possible to use any PHP function or method as a default value for a variable which allows you to prefill a value with the current timestamp. Furthermore I have been putting a lot of work into the new &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1026&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://trac.php-tools.net/patTemplate/wiki/Docs&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://trac.php-tools.net/patTemplate/wiki/Docs&quot;&gt;patTemplate manual&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1027&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://trac.php-tools.net/patForms&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://trac.php-tools.net/patForms&quot;&gt;patForms 0.9.0b3&lt;/a&gt; mostly contains bugfixes and provides several install-groups for the PEAR installer, which allow you to choose your form renderer when installing patForms. This will hopefully be one of the last beta version for patForms 0.9.0 as we plan to release a stable version during the next 4-6 weeks.&lt;br /&gt;
&lt;br /&gt;
Both packages can easily be installed using of PEAR channel server at &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=1028&amp;amp;entry_id=148&quot;  onmouseover=&quot;window.status=&#039;http://pear.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://pear.php-tools.net&quot;&gt;pear.php-tools.net&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Sun, 20 Aug 2006 15:25:13 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/148-guid.html</guid>
    
</item>
<item>
    <title>Creating PEAR-installable nightly builds</title>
    <link>http://blog.php-tools.net/archives/147-Creating-PEAR-installable-nightly-builds.html</link>
            <category>PHP</category>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/147-Creating-PEAR-installable-nightly-builds.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=147</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=147</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    If you incorporate a &quot;release early, release often&quot; policy for your projects, it helps you to detect bugs in an early development stage of your application. In many cases making a release takes some time and you do not release new versions as often as you intended. We had these problems with our projects over at &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=989&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://www.php-tools.net&quot;&gt;www.php-tools.net&lt;/a&gt;. That&#039;s why we created &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=990&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://snaps.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;http://snaps.php-tools.net&quot;&gt;snaps.php-tools.net&lt;/a&gt;, a site where you can download nightly builds of our projects as ZIP, TAR.GZ or TAR.BZ2 archive. This saves the users, who want to test the latest development versions the hassle checking out the latest version from our subversion repository. The problem of this technique was, that most users use the PEAR installer to deploy our packages and if they downloaded a ZIP file, it&#039;s not possible to use the PEAR installer on this file. That&#039;s why we came up with a solution to create nightly builds that are installable with the PEAR installer. Read on, if you are interested in how this can be achieved...&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://blog.php-tools.net/archives/147-Creating-PEAR-installable-nightly-builds.html#extended&quot;&gt;Continue reading &quot;Creating PEAR-installable nightly builds&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 20 Aug 2006 11:23:45 +0200</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/147-guid.html</guid>
    
</item>
<item>
    <title>HTTP_SessionServer 0.4.0 available</title>
    <link>http://blog.php-tools.net/archives/107-HTTP_SessionServer-0.4.0-available.html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/107-HTTP_SessionServer-0.4.0-available.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    I just released a new version of HTTP_SessionServer, a daemon that is able to store key value pairs and communicates with any kind of client using a simple protocol.&lt;br /&gt;
Besides some cosmetic changes, this &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=632&amp;amp;entry_id=107&quot; title=&quot;http://pear.php.net/package/HTTP_SessionServer/download/0.4.0&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net/package/HTTP_SessionServer/download/0.4.0&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;release&lt;/a&gt; features a new backend contributed by &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=633&amp;amp;entry_id=107&quot; title=&quot;http://pear.php.net/user/luckec&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net/user/luckec&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Carsten Lucke&lt;/a&gt;, which stores session data in a database using the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=634&amp;amp;entry_id=107&quot; title=&quot;http://pear.php.net/package/DB&quot;  onmouseover=&quot;window.status=&#039;http://pear.php.net/package/DB&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;DB&lt;/a&gt; abstraction layer.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to learn more about how HTTP_SessionServer works, you can take a look at the &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=635&amp;amp;entry_id=107&quot; title=&quot;http://www.php-tools.net/?file=/about/presentations.xml&quot;  onmouseover=&quot;window.status=&#039;http://www.php-tools.net/?file=/about/presentations.xml&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;presentation&lt;/a&gt; I did at the International PHP Conference in Frankfurt. 
    </content:encoded>

    <pubDate>Mon, 03 Jan 2005 19:47:36 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/107-guid.html</guid>
    
</item>
<item>
    <title>CVS repository gets alive</title>
    <link>http://blog.php-tools.net/archives/5-CVS-repository-gets-alive.html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/5-CVS-repository-gets-alive.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (gERD)</author>
    <content:encoded>
    Currently the pat-team works hard to refill the CVS repository. After the whole project moved to the new server, we got &quot;root&quot;-permissions for the entire system. Now there are many giga bytes on the brand new harddisk to be filled with PHP-stuff.&lt;br /&gt;
Besides the new subdomain, you can find some new packages in our CVS-repository at &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=42&amp;amp;entry_id=5&quot; title=&quot;http://cvs.php-tools.net&quot;  onmouseover=&quot;window.status=&#039;http://cvs.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;cvs.php-tools.net&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Wed, 03 Mar 2004 01:37:11 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/5-guid.html</guid>
    
</item>
<item>
    <title>To bug or not to bug...</title>
    <link>http://blog.php-tools.net/archives/3-To-bug-or-not-to-bug....html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/3-To-bug-or-not-to-bug....html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    Today I installed &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=38&amp;amp;entry_id=3&quot; title=&quot;http://www.bugzilla.org&quot;  onmouseover=&quot;window.status=&#039;http://www.bugzilla.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;BugZilla&lt;/a&gt; on our server. We will use this tool to track &lt;b&gt;all&lt;/b&gt; bugs for &lt;b&gt;all&lt;/b&gt; of our projects. The current installation may frighten users that are not familiar with BugZilla, we will be working on the user interface during the next days/weeks.&lt;br /&gt;
&lt;br /&gt;
If you want to report a bug for our tools, just visit &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=39&amp;amp;entry_id=3&quot; title=&quot;http://bugs.php-tools.net&quot;  onmouseover=&quot;window.status=&#039;http://bugs.php-tools.net&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;bugs.php-tools.net&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Tue, 24 Feb 2004 22:21:38 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/3-guid.html</guid>
    
</item>
<item>
    <title>Whuff! PAT started blogging</title>
    <link>http://blog.php-tools.net/archives/1-Whuff!-PAT-started-blogging.html</link>
            <category>PAT</category>
    
    <comments>http://blog.php-tools.net/archives/1-Whuff!-PAT-started-blogging.html#comments</comments>
    <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.php-tools.net/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (schst)</author>
    <content:encoded>
    Our friendly little dog finally takes part in the new hype and starts his own blog. With the help of his favourite programmers argh, gERD and schst, he will inform you what&#039;s going on in his life and the PHP Application Tools Team.&lt;br /&gt;
&lt;br /&gt;
BTW: This blog is powered by the great &lt;a href=&quot;http://blog.php-tools.net/exit.php?url_id=40&amp;amp;entry_id=1&quot; title=&quot;http://s9y.org&quot;  onmouseover=&quot;window.status=&#039;http://s9y.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;s9y&lt;/a&gt; blog. 
    </content:encoded>

    <pubDate>Sun, 22 Feb 2004 19:46:13 +0100</pubDate>
    <guid isPermaLink="false">http://blog.php-tools.net/archives/1-guid.html</guid>
    
</item>

</channel>
</rss>