Saturday, June 2. 2007
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 changelog. patTemplate can be downloaded from our PEAR channel server or easily installed via the PEAR installer:
$ pear channel-discover pear.php-tools.net
$ pear install pat/patTemplate
More information can be found the the patTemplate development site.
Friday, February 16. 2007
 Yesterday, the Stubbles project got its own blog at www.stubbles.org.
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 stubReflection package, which brings Java Annotations to PHP. The next issue of the German PHP Magazin will feature an article, that shows how to use this package.
The blog will feature tutorials, thoughts on Stubbles and surely rants on PHP itself. So it will be definitely worth the read.
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 Sebastian Mordziol of Mistralys, who is also responsible for the PAT design and several PAT packages.
Sunday, February 11. 2007
 Cal Evans, editor of the Zend Developer Zone, wrote a review of "PHP Programming with PEAR", the book I wrote together with Carsten Lucke, Aaron Wormus and Stoyan Stefanov.
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 book website, which has been set up by Aaron. And of course you can directly order it at Amazon.com.
Tuesday, December 12. 2006
 XJConfForPHP, the XML-to-object-mapper, Frank Kleine and me are working on is now available as a daily snapshot from snaps.php-tools.net.
While the project started as a 1:1 port of the Java version, 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 XJConfForPHP a try.
Thursday, October 12. 2006
 As Aaron blogged earlier today "PHP Programming with PEAR" 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 PEAR 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.
The book is available for order from Amazon.com or if you are living in Europe you might as well order it from Amazon.de or Amazon.co.uk. Aaron also set up a wiki for the book, where you can find more information or even contribute.
Monday, October 9. 2006
 After nearly a year of work, my first very own book has finally been published and arrived last weekend.
PHP Design Patterns 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, PEAR, Propel and patTemplate are used in some examples.
So if you are capable of understanding German and interested in learning more about patterns and software design in general, feel free to buy it at Amazon.de. More information and code examples can be found at the book website or at O'Reilly's online catalog. 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
Tuesday, September 5. 2006
 Today, Frank and I released the first version of XJConf For PHP. This is a port of the original XJConf 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 documentation of the original java version. Most of the examples have been ported to PHP as well by Frank, who did most of the work in this project.
If you want to give XJConf For PHP a try, you can get it via our PEAR channel or from SVN at http://svn.xjconf.net/XJConfForPHP/.
The fantastic XJConf logo has been developed and designed by Georg Rothweiler.
Sunday, August 20. 2006
After I finally finished my book (and my contribution to Exploring PHP) I finally have enough time to work on all of my open source projects again and today made two new releases. patTemplate 3.1.0b1 contains tons of changes 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: $tmpl = new patTemplate();
$tmpl->setRoot('mysql://root:@localhost/test', 'DB');
$tmpl->readTemplatesFromInput("SELECT content FROM templates WHERE id='foo'", 'DB');
// or use this syntax:
$tmpl->readTemplatesFromInput('templates[@id=foo]/@content', 'DB');
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 patTemplate manual.
patForms 0.9.0b3 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.
Both packages can easily be installed using of PEAR channel server at pear.php-tools.net.
If you incorporate a "release early, release often" 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 www.php-tools.net. That's why we created snaps.php-tools.net, 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's not possible to use the PEAR installer on this file. That'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...
Continue reading "Creating PEAR-installable nightly builds"
Friday, August 18. 2006
 Today I received a message from O'Reilly, that my book PHP Design Patterns is now going to print and is scheduled to be released in September 2006. The work of the last six months is finally bearing fruit and I will be able to spend my spare time on coding again instead of just writing. If you wondered, why patTemplate or any of my other open source projects did not show any progress, this announcement should answer your questions.
I put nearly all of my thoughts on software architecture, OO design and patterns into this book and thus it consists of 370 pages dealing with OO development in PHP 5.1, creational patterns, structural patterns, behavioural patterns as well as enterprise patterns and MVC architectures. Furthermore it covers SPL, Propel and patTemplate to provide some real-life examples of the patterns.
If you intend to buy the book, you should be warned that it has been written completely in German. If you still are interested, you will find more information on the book as well as the code example on the website or you can already pre-order it from Amazon.
Thanks go to gERD, luckec and Frank who supported me with their knowledge as well as Toby, who introduced me to O'Reilly.
Sunday, August 6. 2006
I just released patTemplate 3.1.0a2. This will be the last alpha version for 3.1.0 and I hope to release a stable version during the next 6-8 weeks. The major changes since 3.0.1a1 include: - You may now use variables in conditions for sub-templates
- I added an input filter that allows Smarty syntax for variable modifiers
- It is now possible to read templates from a database using PEAR::DB
The full list of changes can be found in the changelog. You can download the package using or PEAR channel server.
Exploring PHP, a book I've been working on in march, will finally be published. I have been working on this together with Frank, Christian, Sandro and Kore and the book features five articles on advanced PHP topics. All articles in the book have been written in German.
The article I contributed showcases how event-driven-development can be used to create component based, flexible applications that allow you to easily plug in new features without modifying the core application. The examples in the book use PEAR's Event_Dispatcher. Other articles cover unit testing with SimpleTest (by Frank), the generation of 3D images with PEAR's Image_3D (by Kore), migration to PHP 5 and refactoring (by Sandro) as well as news on PHP 6 (by Christian). The editor for the book is Markus Nix, he compiled all the articles. If you take a closer look at the cover, you might see that there are different names listed on the cover than those mentioned in the blog. This is because some of the original authors did not manage to deliver their articles in time and have been replaced.
The planned release date for the book is 08/17/2006, so keep your eyes open.
Monday, June 5. 2006
In January 2005 I wrote a tutorial on the PEAR package XML_Parser, that I maintain. This tutorial was supposed to be published in the PEAR section of Zend's developer zone, as they planned on sponsoring PEAR developers that were willing to write tutorials for their packages. Sadly enough this tutorial has never been published, although Zend promised me to do so and I also never received the promised discount on the Zend certification.
When cleaning up my hard disk yesterday, I stumbled across the tutorial and decided, that it would probably be better to publish it on my own website instead of waiting for Zend to finally put it online. So if you still are using PHP4 or prefer SAX-based parsing although PHP5 offers a decent DOM implementation, you can now find the XML_Parser tutorial on my website.
Be warned: Although the tutorial itself has been written in English, the rest of the website is in German, so you might find the navigation a bit strange. But no need to worry, the this link will guide you directly to the tutorial.
Tuesday, March 7. 2006
patError has been developed as we needed a simple tool to unify the error management in all our different projects such as patTemplate, patForms or patBBCode. Although we liked the error handling provided by PEAR, we did not want to use it, as we did not want to force our users to use PEAR in combination with our tools. Still, we adopted several concepts from the PEAR error handling, so most of the uses who already have been familiar with PEAR were able to use patError without the need to learn a lot of new concepts.
However, in the past months, more and more people asked us questions about patError and so I decided as was time to write some decent documentation on all the features. As Aaron announced that his upcoming talk at the next PHP Usergroup Frankfurt meeting would also include patError, I realized that it was now or never and wrote the full documentation for patError, which includes advanced topics like registering new error levels are replacing the error class with your own class. The documentation is available on our new Trac-powered site, which also provides SVN-access and a bug tracker.
If you ever wanted to know more about patError, you will hopefully find all that you need on our new site.
Wednesday, March 1. 2006
This is just a quick note to let you know, that our project has not died. We are currently in the process of moving all available documentation from our website to the Trac installations we will be using to maintain our projects. While moving the exsiting documentation, I also added a new page, which contains a tag reference for patTemplate.
We will keep you updated on our future plans for our projects.
|