<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://blog.php-tools.net/feeds/atom10.xml" rel="self" title="a programmer's best friend" type="application/atom+xml" />
    <link href="http://blog.php-tools.net/"                        rel="alternate"    title="a programmer's best friend" type="text/html" />
    <link href="http://blog.php-tools.net/rss.php?version=2.0"     rel="alternate"    title="a programmer's best friend" type="application/rss+xml" />
    <title type="html">a programmer's best friend</title>
    <subtitle type="html">the blog of pat, the dog</subtitle>
    <icon>http://blog.php-tools.net/templates/default/img/s9y_banner_small.png</icon>
    <id>http://blog.php-tools.net/</id>
    <updated>2009-02-25T08:01:00Z</updated>
    <generator uri="http://www.s9y.org/" version="1.0">Serendipity 1.0 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://blog.php-tools.net/archives/165-patTemplate-bits-and-pieces.html" rel="alternate" title="patTemplate bits and pieces" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-02-25T08:01:00Z</published>
        <updated>2009-02-25T08:01:00Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=165</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/165-guid.html</id>
        <title type="html">patTemplate bits and pieces</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                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's code base. This way patTemplate grows little by little, even if it's core stays the same. <br />
<br />
Here are some variable modifiers that were recently added: <br />
<strong>Calc</strong> (like a pocket calculator), <strong>Dateformat</strong>, <strong>Numberformat</strong>, <strong>Sizeformat</strong> (displays human readable file sizes)  and <strong>Truncate</strong> (makes verbose text brief).<br />
<br />
This week <a href="http://blog.php-tools.net/exit.php?url_id=1146&amp;entry_id=165"  onmouseover="window.status='https://mutlamap.dk';return true;" onmouseout="window.status='';return true;"  title="Torben's page">Torben Egmose</a> provided a template caching driver based on famous Memcache. Now there are five cache backend modules available: <strong>File</strong>, <strong>eAccelerator</strong>, <strong>Memcache</strong>, <strong>MMCache</strong> and <strong>XCache</strong>.<br />
<br />
As mentioned above, there are no major changes, but as usual, it those little bits and pieces that make life enjoyable. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/164-mistralys.eu-Job-offer.html" rel="alternate" title="mistralys.eu Job offer" />
        <author>
            <name>argh</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-01-20T12:54:47Z</published>
        <updated>2009-01-20T12:54:47Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=164</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=164</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/164-guid.html</id>
        <title type="html">mistralys.eu Job offer</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Under normal circumstances I would not post this here, but I am getting desperate - and I thought a job offer is infinitely more useful if not as entertaining than the recent "seven things" chain postings <img src="http://blog.php-tools.net/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<br />
My company, <a href="http://blog.php-tools.net/exit.php?url_id=1144&amp;entry_id=164" title="http://www.mistralys.eu"  onmouseover="window.status='http://www.mistralys.eu';return true;" onmouseout="window.status='';return true;">Mistralys</a>, is based on the southern mediterranean french coast and offers services to german companies as well as local and nationwide subcontractors and companies. Due to the amount of project requests piling up, it is time to grow. I need someone who can work autonomously, and who has a foot both in PHP development and design.<br />
<br />
To keep things simple, these are the main job requirements:<br />
<br />
- Good knowledge of german (at least read &amp; write it)<br />
- Very good knowledge of Photoshop and Web-based design<br />
- Good all-round PHP knowledge, including object-oriented development<br />
- Be available full-time (or part-time in the beginning)<br />
<br />
I am aware that moving to france is not going to be an option for many (although that would be ideal). Working remotely from your home is a possibility, as long as you are available during CET working hours (roughly 9am to 17pm).<br />
<br />
<b>NOTE:</b> freelancing does not mix well with the projects I work on, as I often get requests that have to be finished on very short notice (sometimes within a few hours). This is why I avoid working with freelancers, and discourage freelancers applying for the offer.<br />
<br />
I have a <a href="http://blog.php-tools.net/exit.php?url_id=1145&amp;entry_id=164" title="http://www.mistralys.eu/?p=5"  onmouseover="window.status='http://www.mistralys.eu/?p=5';return true;" onmouseout="window.status='';return true;">full job description</a> on the website, feel free to read up on all the details. If you want to apply or know more, please contact me at s.mordziol at gmail.com with your portfolio and salary expectations. Comments welcome, as always.<br />
<br />
Regards,<br />
<br />
Sebastian Mordziol.<br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/163-patError-1.2.0-released.html" rel="alternate" title="patError 1.2.0 released" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2008-07-19T17:32:58Z</published>
        <updated>2008-07-19T17:32:58Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=163</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/163-guid.html</id>
        <title type="html">patError 1.2.0 released</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                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 <a href="http://blog.php-tools.net/exit.php?url_id=1142&amp;entry_id=163"  onmouseover="window.status='http://pear.php-tools.net';return true;" onmouseout="window.status='';return true;"  title="Visit our PEAR channel">PEAR channel</a>.<br />
<br />
I decided to port patError to PHP 5 while writing the second edition of my <a href="http://blog.php-tools.net/exit.php?url_id=1143&amp;entry_id=163"  onmouseover="window.status='http://www.phpdesignpatterns.de';return true;" onmouseout="window.status='';return true;"  title="Visit the PHP Design Patterns website">PHP Design Patterns</a> book, which covers patError as a depency of patTemplate. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/162-Conference-ish-Autumn.html" rel="alternate" title="Conference-ish Autumn" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-14T13:09:11Z</published>
        <updated>2007-07-15T07:08:34Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=162</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=162</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/162-guid.html</id>
        <title type="html">Conference-ish Autumn</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Today <strong>Timo</strong> told me that his session proposal got approved! Yippie! We both applied for the <a href="http://blog.php-tools.net/exit.php?url_id=1140&amp;entry_id=162"  onmouseover="window.status='http://ajaxinaction.de/';return true;" onmouseout="window.status='';return true;"  title="Conference Frankfurt, Germany November/2007">AJAX in Action</a> in Frankfurt November this year.<br />
<br />
I submitted a session about some essential JavaScript tricks for modular sites that make extensive use of Web 2.0 technologies. I planed to focus on real live examples - stuff that we implemented at <a href="http://blog.php-tools.net/exit.php?url_id=1141&amp;entry_id=162"  onmouseover="window.status='http://my.nero.com';return true;" onmouseout="window.status='';return true;"  title="Mutltimedia Community project of Nero">My Nero</a>, in other words sneak into a big AJAX site's internals . Unfortunately it got rejected <img src="http://blog.php-tools.net/templates/default/img/emoticons/sad.png" alt=":-(" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<br />
However I'm looking forward to see Timo's session about a flexible and easy to use <strong>AutoSave Framework</strong>. Adapting his thoughts, you can add the AutoSave feature to any form on a web-site easily. As I know some internals about his implementation, I can tell you that he solved some big issues. Though he focused on reusability and came out with a bunch of really nice lines of code.<br />
<br />
It's going to become a very interesting conference this autumn.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/161-Testing-FIT.html" rel="alternate" title="Testing FIT" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-06-20T19:20:31Z</published>
        <updated>2007-06-20T19:20:31Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=161</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/161-guid.html</id>
        <title type="html">Testing FIT</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I just uploaded the package Testing_FIT to <a href="http://blog.php-tools.net/exit.php?url_id=1135&amp;entry_id=161"  onmouseover="window.status='http://pear.php.net';return true;" onmouseout="window.status='';return true;"  title="PEAR">PEAR</a>. Testing_FIT is the PHP and pearish version of Ward Cunningham's FIT <a href="http://blog.php-tools.net/exit.php?url_id=1136&amp;entry_id=161" title="http://fit.c2.com/"  onmouseover="window.status='http://fit.c2.com/';return true;" onmouseout="window.status='';return true;" >http://fit.c2.com/</a>. As such it provides an easy to use framework for acceptance software tests. <br />
<br />
<blockquote>pear install Testing_FIT-beta</blockquote><br />
<br />
Simply install the PEAR package <a href="http://blog.php-tools.net/exit.php?url_id=1137&amp;entry_id=161"  onmouseover="window.status='http://pear.php.net/package/Testing_FIT';return true;" onmouseout="window.status='';return true;"  title="Testing FIT package homepage">Testing_FIT</a> 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. <br />
<br />
You'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. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/160-I18n-and-such.html" rel="alternate" title="I18n and such" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-06-18T06:45:37Z</published>
        <updated>2007-06-18T06:45:37Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=160</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/160-guid.html</id>
        <title type="html">I18n and such</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                In lack of a better idea, I founded a new PAT Package: <strong>patI18n.</strong> 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.<br />
<br />
Of course, I didn't start patI18n out of the blue. Last year, I branched <strong>patForms</strong> 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' 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. <br />
<br />
Download the sources from our subversion server:<br />
<strong>patI18n:</strong> svn co http://www.php-tools.net/svn/patI18n/trunk/ patI18n<br />
<strong>patForms:</strong>  svn co http://www.php-tools.net/svn/patForms/branches/gettext/ patForms<br />
<br />
View the source code of patI18n at <a href="http://blog.php-tools.net/exit.php?url_id=1134&amp;entry_id=160"  onmouseover="window.status='http://gerd.exit0.net/pat/i18n/';return true;" onmouseout="window.status='';return true;"  title="patI18n source code and examples">gERD's playground</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/159-patTemplate-3.1.0-stable-released.html" rel="alternate" title="patTemplate 3.1.0 stable released" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-06-02T15:30:11Z</published>
        <updated>2007-06-02T15:35:31Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=159</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/159-guid.html</id>
        <title type="html">patTemplate 3.1.0 stable released</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                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 <a href="http://blog.php-tools.net/exit.php?url_id=1132&amp;entry_id=159"  onmouseover="window.status='http://pear.php-tools.net/index.php?package=patTemplate&release=3.1.0&downloads';return true;" onmouseout="window.status='';return true;"  title="patTemplate changelog">changelog</a>. patTemplate can be downloaded from our PEAR channel server or easily installed via the PEAR installer:<br />
<code>$ pear channel-discover pear.php-tools.net<br />
$ pear install pat/patTemplate</code><br />
More information can be found the the <a href="http://blog.php-tools.net/exit.php?url_id=1133&amp;entry_id=159"  onmouseover="window.status='http://trac.php-tools.net/patTemplate';return true;" onmouseout="window.status='';return true;"  title="patTemplate development">patTemplate development site</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/158-Stubbles-Blog-is-live!.html" rel="alternate" title="Stubbles Blog is live!" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-02-16T17:05:00Z</published>
        <updated>2007-02-17T14:04:26Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=158</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=158</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/158-guid.html</id>
        <title type="html">Stubbles Blog is live!</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a class='serendipity_image_link' href="http://blog.php-tools.net/exit.php?url_id=1123&amp;entry_id=158" title="http://www.stubbles.org"  onmouseover="window.status='http://www.stubbles.org';return true;" onmouseout="window.status='';return true;"><img width='132' height='113' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://blog.php-tools.net/uploads/stubbles.png" alt="" /></a>Yesterday, the <a href="http://blog.php-tools.net/exit.php?url_id=1124&amp;entry_id=158"  onmouseover="window.status='http://www.stubbles.net';return true;" onmouseout="window.status='';return true;"  title="Go to Stubbles development site">Stubbles</a> project <a href="http://blog.php-tools.net/exit.php?url_id=1125&amp;entry_id=158"  onmouseover="window.status='http://www.stubbles.org/archives/1-The-Stubbles-Blog-is-here!.html';return true;" onmouseout="window.status='';return true;"  title="Stubbles Blog announcement">got</a> its own blog at <a href="http://blog.php-tools.net/exit.php?url_id=1123&amp;entry_id=158"  onmouseover="window.status='http://www.stubbles.org';return true;" onmouseout="window.status='';return true;"  title="Go to Stubbles blog">www.stubbles.org</a>.<br />
<br />
Stubbles is a new framework for PHP 5.2 which focuses on clean OO design, the use of patterns and ports some features from the langauges commonly referred to "enterprise languages" to PHP. If you are looking for new ways to develop your PHP applications, you should definitely take a look at the <a href="http://blog.php-tools.net/exit.php?url_id=1127&amp;entry_id=158"  onmouseover="window.status='http://stubbles.net/wiki/Docs/Reflection';return true;" onmouseout="window.status='';return true;"  title="Read stubReflection documentation">stubReflection package</a>, which brings Java Annotations to PHP. The next issue of the German <a href="http://blog.php-tools.net/exit.php?url_id=1128&amp;entry_id=158"  onmouseover="window.status='http://www.phpmag.de';return true;" onmouseout="window.status='';return true;"  title="Go to phpmag.de">PHP Magazin</a> will feature an article, that shows how to use this package.<br />
<br />
The blog will feature tutorials, thoughts on Stubbles and surely rants on PHP itself. So it will be definitely worth the read.<br />
<br />
Stubbles currently is developed by Frank Kleine, Nico Steiner and Stephan Schmidt. The design of the Stubbles logo and the Stubblog design have been created by <a href="http://blog.php-tools.net/exit.php?url_id=1129&amp;entry_id=158"  onmouseover="window.status='http://www.mistralys.com/who/stubbles';return true;" onmouseout="window.status='';return true;"  title="Go to mistralys website">Sebastian Mordziol of Mistralys</a>, who is also responsible for the PAT design and several PAT packages. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/157-PHP-Programming-with-PEAR-reviewed.html" rel="alternate" title="PHP Programming with PEAR reviewed" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-02-11T09:20:11Z</published>
        <updated>2007-02-11T09:29:14Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=157</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=157</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/157-guid.html</id>
        <title type="html">PHP Programming with PEAR reviewed</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a href="http://blog.php-tools.net/exit.php?url_id=1098&amp;entry_id=157" title="http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795"  onmouseover="window.status='http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795';return true;" onmouseout="window.status='';return true;" ><img width='73' height='90' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://blog.php-tools.net/uploads/1904811795.serendipityThumb.png" alt="" /></a>Cal Evans, editor of the Zend Developer Zone, wrote a <a href="http://blog.php-tools.net/exit.php?url_id=1099&amp;entry_id=157" title="http://devzone.zend.com/node/view/id/1644"  onmouseover="window.status='http://devzone.zend.com/node/view/id/1644';return true;" onmouseout="window.status='';return true;" >review of "PHP Programming with PEAR"</a>, the book I wrote together with Carsten Lucke, Aaron Wormus and Stoyan Stefanov.<br />
The review is very positive and what's especially nice about it, is, that he liked Chapter 4 (Web services) the most and this is one of the chapters that I wrote. If you are interested in buying a copy of the book, you can find more information at the <a href="http://blog.php-tools.net/exit.php?url_id=1100&amp;entry_id=157"  onmouseover="window.status='http://www.thepearbook.com/';return true;" onmouseout="window.status='';return true;"  title="http://www.thepearbook.com/">book website</a>, which has been set up by Aaron. And of course you can directly order it at <a href="http://blog.php-tools.net/exit.php?url_id=1098&amp;entry_id=157" title="http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795"  onmouseover="window.status='http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795';return true;" onmouseout="window.status='';return true;" >Amazon.com</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/155-patTemplate-Documentation-in-Bahasa-Indonesia.html" rel="alternate" title="patTemplate Documentation in Bahasa Indonesia" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-02-01T19:41:10Z</published>
        <updated>2007-02-05T23:32:46Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=155</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=155</wfw:commentRss>
    
    
        <id>http://blog.php-tools.net/archives/155-guid.html</id>
        <title type="html">patTemplate Documentation in Bahasa Indonesia</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                We are vary proud to hear that there are patTemplate enthusiasts around the world. Actually, we just learned thet there is a <a href="http://blog.php-tools.net/exit.php?url_id=1091&amp;entry_id=155"  onmouseover="window.status='http://direktori.or.id/pattemplate';return true;" onmouseout="window.status='';return true;"  title="translated documentation">patTemplate Documentation in Bahasa Indonesia</a> available. Thanks a lot for translation! 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/156-patTemplate-Documentation-in-Bahasa-Indonesia.html" rel="alternate" title="patTemplate Documentation in Bahasa Indonesia" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-02-01T19:41:10Z</published>
        <updated>2007-02-01T19:59:24Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=156</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/156-guid.html</id>
        <title type="html">patTemplate Documentation in Bahasa Indonesia</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                We are vary proud to hear that there are patTemplate enthusiasts around the world. Actually, we just learned thet there is a <a href="http://blog.php-tools.net/exit.php?url_id=1093&amp;entry_id=156"  onmouseover="window.status='http://direktori.or.id/pattemplate';return true;" onmouseout="window.status='';return true;"  title="translated documentation">patTemplate Documentation in Bahasa Indonesia</a> available. Thanks a lot for translation! 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/154-Nightly-builds-for-XJConf-available.html" rel="alternate" title="Nightly builds for XJConf available" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2006-12-12T21:29:21Z</published>
        <updated>2006-12-12T21:29:21Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=154</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=154</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/154-guid.html</id>
        <title type="html">Nightly builds for XJConf available</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <img width='110' height='100' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://blog.php-tools.net/uploads/XJConf.serendipityThumb.gif" alt="" />XJConfForPHP, the XML-to-object-mapper, <a href="http://blog.php-tools.net/exit.php?url_id=1087&amp;entry_id=154" title="http://www.frankkleine.de/"  onmouseover="window.status='http://www.frankkleine.de/';return true;" onmouseout="window.status='';return true;">Frank Kleine</a> and me are working on is now available as a daily snapshot from <a href="http://blog.php-tools.net/exit.php?url_id=1088&amp;entry_id=154"  onmouseover="window.status='http://snaps.php-tools.net';return true;" onmouseout="window.status='';return true;"  title="null">snaps.php-tools.net</a>.<br />
While the project started as a 1:1 port of the <a href="http://blog.php-tools.net/exit.php?url_id=1089&amp;entry_id=154"  onmouseover="window.status='http://java.schst.net/XJConf';return true;" onmouseout="window.status='';return true;"  title="http://java.schst.net/XJConf">Java version</a>, we are constantly adding new features as well as unit tests. If you need a flexible solution to parse XML documents and create PHP data structures, you might give <a href="http://blog.php-tools.net/exit.php?url_id=1090&amp;entry_id=154" title="http://php.xjconf.net"  onmouseover="window.status='http://php.xjconf.net';return true;" onmouseout="window.status='';return true;">XJConfForPHP</a> a try. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/153-FIT-for-PHP.html" rel="alternate" title="FIT for PHP" />
        <author>
            <name>gERD</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2006-10-17T19:34:52Z</published>
        <updated>2006-10-23T20:39:55Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=153</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
            <category scheme="http://blog.php-tools.net/categories/2-PAT" label="PAT" term="PAT" />
    
        <id>http://blog.php-tools.net/archives/153-guid.html</id>
        <title type="html">FIT for PHP</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a href="http://blog.php-tools.net/exit.php?url_id=1083&amp;entry_id=153"  onmouseover="window.status='http://gerd.exit0.net/pat/PHPFIT/phpfit-egMath.gif';return true;" onmouseout="window.status='';return true;"  title="Screenshot of PHPFIT's test output"><img border="0" width='77' height='110'  src="http://blog.php-tools.net/uploads/phpfit-egMath.serendipityThumb.gif" align="left" vspace="7" hspace="7" alt="" /></a>As I'm going to talk aboit <strong>FIT</strong> at the <a href="http://blog.php-tools.net/exit.php?url_id=1084&amp;entry_id=153"  onmouseover="window.status='http://phpkonferenz.de/';return true;" onmouseout="window.status='';return true;"  title="International PHP Conference 2006">PHP Conference</a>, I like to invite you to check out the preview of PHPFIT package. <a href="http://blog.php-tools.net/exit.php?url_id=1085&amp;entry_id=153"  onmouseover="window.status='http://gerd.exit0.net/pat/PHPFIT/';return true;" onmouseout="window.status='';return true;"  title="PHPFIT as tar archive and PEAR  package">Simply download and install the PEAR package or tar archive.</a><br />
<br />
<strong>FIT</strong> stands for <em>Framework for Integrated Test</em> (See: <a href="http://blog.php-tools.net/exit.php?url_id=1086&amp;entry_id=153"  onmouseover="window.status='http://fit.c2.com/';return true;" onmouseout="window.status='';return true;"  title="Homepage of Ward Cunningham's FIT">FIT Wiki</a>) realices acceptance tests with heavy use of HTML documents. Those documents do not just contain the usual <em>blah-blah</em> but hard <em>facts</em>. The <em>facts</em>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. <br />
<br />
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 <em>unit testing</em> offers (FIT is not meant to replace unit-tests) and may enrich your next project.<br />
<br />
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 <img src="http://blog.php-tools.net/templates/default/img/emoticons/sad.png" alt=":-(" style="display: inline; vertical-align: bottom;" class="emoticon" /> But this will change. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/152-PHP-programming-with-PEAR-published.html" rel="alternate" title="PHP programming with PEAR published" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2006-10-12T15:49:11Z</published>
        <updated>2006-10-22T09:03:40Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=152</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=152</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/152-guid.html</id>
        <title type="html">PHP programming with PEAR published</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a href="http://blog.php-tools.net/exit.php?url_id=1075&amp;entry_id=152" title="http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795"  onmouseover="window.status='http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795';return true;" onmouseout="window.status='';return true;"><img width='73' height='90' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://blog.php-tools.net/uploads/1904811795.serendipityThumb.png" alt="" /></a>As <a href="http://blog.php-tools.net/exit.php?url_id=1076&amp;entry_id=152"  onmouseover="window.status='http://www.wormus.com/aaron/stories/2006/10/12/the-pear-book-is-out.html';return true;" onmouseout="window.status='';return true;"  title="http://www.wormus.com/aaron/stories/2006/10/12/the-pear-book-is-out.html">Aaron blogged earlier today</a> <a href="http://blog.php-tools.net/exit.php?url_id=1077&amp;entry_id=152"  onmouseover="window.status='http://www.packtpub.com/pear/book';return true;" onmouseout="window.status='';return true;"  title="http://www.packtpub.com/pear/book">"PHP Programming with PEAR"</a> has finally been published. It is a colaboration between Carsten Lucke, Stoyan Stefanov, Aaron Wormus and me. It takes a quite practical approach that showcases a lot of code to get the job done very quickly using various <a href="http://blog.php-tools.net/exit.php?url_id=1078&amp;entry_id=152"  onmouseover="window.status='http://pear.php-tools.net';return true;" onmouseout="window.status='';return true;"  title="PHP Extension and Application Repository">PEAR</a> packages. Packages covered in the book range from Date and MDB2 to XML_Serializer and Services_Webservices. I contributed to chapters that introduce the reader to the XML and Webservice packages, as I contributed a lot of code to these categories.<br />
<br />
The book is available for order from <a href="http://blog.php-tools.net/exit.php?url_id=1075&amp;entry_id=152" title="http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795"  onmouseover="window.status='http://www.amazon.com/gp/product/1904811795?ie=UTF8&tag=schstnet-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1904811795';return true;" onmouseout="window.status='';return true;">Amazon.com</a> or if you are living in Europe you might as well order it from <a href="http://blog.php-tools.net/exit.php?url_id=1080&amp;entry_id=152" title="http://www.amazon.de/gp/product/1904811795?ie=UTF8&tag=schstnet-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=1904811795"  onmouseover="window.status='http://www.amazon.de/gp/product/1904811795?ie=UTF8&tag=schstnet-21&linkCode=as2&camp=1638&creative=6742&creativeASIN=1904811795';return true;" onmouseout="window.status='';return true;">Amazon.de</a><img src="http://www.assoc-amazon.de/e/ir?t=schstnet-21&l=as2&o=3&a=1904811795" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> or <a href="http://blog.php-tools.net/exit.php?url_id=1081&amp;entry_id=152"  onmouseover="window.status='http://www.amazon.co.uk/gp/product/1904811795';return true;" onmouseout="window.status='';return true;"  title="Buy it Amazon.co.uk">Amazon.co.uk</a>. Aaron also set up a <a href="http://blog.php-tools.net/exit.php?url_id=1082&amp;entry_id=152"  onmouseover="window.status='http://www.thepearbook.com/';return true;" onmouseout="window.status='';return true;"  title="http://www.thepearbook.com/">wiki for the book</a>, where you can find more information or even contribute. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.php-tools.net/archives/151-PHP-Design-Patterns-published.html" rel="alternate" title="PHP Design Patterns published" />
        <author>
            <name>schst</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2006-10-09T16:48:31Z</published>
        <updated>2006-10-22T09:03:51Z</updated>
        <wfw:comment>http://blog.php-tools.net/wfwcomment.php?cid=151</wfw:comment>
    
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://blog.php-tools.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=151</wfw:commentRss>
    
            <category scheme="http://blog.php-tools.net/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://blog.php-tools.net/archives/151-guid.html</id>
        <title type="html">PHP Design Patterns published</title>
        <content type="xhtml" xml:base="http://blog.php-tools.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <a class='serendipity_image_link' href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3d3dy5waHBkZXNpZ25wYXR0ZXJucy5kZQ==&amp;entry_id=151" title="http://www.phpdesignpatterns.de"  onmouseover="window.status='http://www.phpdesignpatterns.de';return true;" onmouseout="window.status='';return true;"><img width='79' height='110' style="float: left; border: 0px; padding-left: 5px; padding-right: 5px;" src="http://blog.php-tools.net/uploads/php-design-patterns.serendipityThumb.png" alt="" /></a>After nearly a year of work, my first <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3d3dy5waHBkZXNpZ25wYXR0ZXJucy5kZQ==&amp;entry_id=151" title="http://www.phpdesignpatterns.de"  onmouseover="window.status='http://www.phpdesignpatterns.de';return true;" onmouseout="window.status='';return true;" >very own book</a> has finally been published and arrived last weekend.<br />
<em>PHP Design Patterns</em> is published by O'Reilly and introduces the reader to the world of patterns by providing practical examples. The patterns used in the book include simple patterns like the Singleton, Subject/Observer or Composite, but also more complex patterns like the Intercepting Filter or Event-Dispatcher patterns. If you never used PHP5 for object-oriented development, you might also finde the short introduction to PHP5's new features, including interceptors, SPL and exceptions, worth reading. All patterns covered in the book can be applied to web applications, and to stay on the practical side of development, <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3BlYXIucGhwLm5ldA==&amp;entry_id=151"  onmouseover="window.status='http://pear.php.net';return true;" onmouseout="window.status='';return true;"  title="http://pear.php.net">PEAR</a>, <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL2h0dHA6Ly9wcm9wZWwucGhwZGIub3JnL3RyYWMv&amp;entry_id=151" title="http://http://propel.phpdb.org/trac/"  onmouseover="window.status='http://http://propel.phpdb.org/trac/';return true;" onmouseout="window.status='';return true;" >Propel</a> and <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3RyYWMucGhwLXRvb2xzLm5ldC9wYXRUZW1wbGF0ZQ==&amp;entry_id=151"  onmouseover="window.status='http://trac.php-tools.net/patTemplate';return true;" onmouseout="window.status='';return true;"  title="http://trac.php-tools.net/patTemplate">patTemplate</a> are used in some examples.<br />
<br />
So if you are capable of understanding German and interested in learning more about patterns and software design in general, feel free to <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3d3dy5hbWF6b24uZGUvZXhlYy9vYmlkb3MvcmVkaXJlY3Q/bGlua19jb2RlPWFzMiZwYXRoPUFTSU4vMzg5NzIxNDQyMyZ0YWc9c2Noc3RuZXQtMjEmY2FtcD0xNjM4JmNyZWF0aXZlPTY3NDI=&amp;entry_id=151" title="http://www.amazon.de/exec/obidos/redirect?link_code=as2&path=ASIN/3897214423&tag=schstnet-21&camp=1638&creative=6742"  onmouseover="window.status='http://www.amazon.de/exec/obidos/redirect?link_code=as2&path=ASIN/3897214423&tag=schstnet-21&camp=1638&creative=6742';return true;" onmouseout="window.status='';return true;" >buy it at Amazon.de</a>. More information and code examples can be found at the <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3d3dy5waHBkZXNpZ25wYXR0ZXJucy5kZS8=&amp;entry_id=151"  onmouseover="window.status='http://www.phpdesignpatterns.de/';return true;" onmouseout="window.status='';return true;"  title="http://www.phpdesignpatterns.de/">book website</a> or at <a href="http://blog.php-tools.net/exit.php?url=aHR0cDovL3d3dy5vcmVpbGx5LmRlL2NhdGFsb2cvcGhwZGVzaWducGF0Z2VyLw==&amp;entry_id=151"  onmouseover="window.status='http://www.oreilly.de/catalog/phpdesignpatger/';return true;" onmouseout="window.status='';return true;"  title="http://www.oreilly.de/catalog/phpdesignpatger/">O'Reilly's online catalog</a>. If you're still not convinced to buy the book, it might help, that the book has been published as a hardcover so it will last longer than most other books <img src="http://blog.php-tools.net/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
            </div>
        </content>
        
    </entry>

</feed>