Thursday, December 6. 2007
Yesterday we brought out a new version of the eZ Components full bundle, which candidates to become the next stable release of our enterprise component library on December 17th.
There are 2 brand new components part of this release: Tree and Webdav and a lot of enhancements have ben introduced into already existing components. The Tree component allows you to work with arbitrary tree structures and offers different storage mechanisms for these, like XML or several different database structures. Using the Webdav components you can easily set up your own WebDAV server, to enable comfortable online content editing for your clients.
To test the release candidate, you can either download the full package from our website or use the PEAR Installer to get a new installation of update an existing one.
Thursday, November 8. 2007
Yesterday night I returned from the yearly International PHP Conference in Frankfurt. As usual this was an amazing event, because you get the chance to meet all those people in real live that you usually only talk to by mail and chat. I really like the ambiance in Mörfelden (where the Conference actually is, not far from Frankfurt), but as Lars stated, it's a good thing that IPC is only 4 days, since a lot of community members would need to detox from alcohol afterwards, if it was longer. ;) You see, we had some great party nights, again.
Beside the usually discussions and party, I attended some interessting sessions and hope that I also held some. My slides of the Hands on eZ Components workshop and the Webdav with eZ Components talk are online for you to download and should be online on the conference website soonish, too.
Now I definitly need some relaxing, so its good the weekend is right in front of the door. Looking forward to seeing you at the next conf, mates! Stay tuned.
Friday, November 2. 2007
Since about a week, Kores and my first book is being shipped. As you can see below, we already got some examples and hope that everybody who ordered in advance got their examples by now, too. If you don't, stay tuned they should arrive soonish. We are both absolutly amazed by the priniting quality and the overall impression of the bookl. Many many thanks again to Stephan Mattescheck, our lector at Galileo Computing, for his great support and the amazing work of the whole team!
Any feedback about the book is welcome as a comment here, by email or you can seize the chance to meet us from Sunday to Wednesday (2007-11-03 to 2007-11-07) on the International PHP Conference near Frankfurt am Main.
Friday, October 26. 2007
The yearly International PHP Conference in Frankfurt (or like I usually say: the family meeting) is approaching rapidly and I'd like to invite you to join me in my Hands on eZ Components full day workshop. The session will take place on the first workshop day, which is Sunday the 4th of November, and will provide 6 hours of bundled eZ Components knowledge to you.

At the beginning of this workshop I will give you a general overview on eZ Components, show you the most important concepts and illustrate our architecture and design descisions. After that, we will start digging into code and you will see, how different components work in practice. Using a practical example applications to see working code I will explain to you, you are also invited to make me change it and possible exchange or add a feature and show you a different component. Some of the most interessting components - like Mail, Template and Graph - will be shown in detail and give you a good impression what eZ Components can do for you and how you effectively make use of them. Beside that, I will try to give you some insider tipps and tricks for your daily development and will possibly tab some OO design concepts and patters for explaination.
In addition to these learning aspects of my workshop, it should also give you the possibility to provide us with feedback on what you are missing in eZ Components, what you dislike and what you like about the library. Get into discussion with me and potentially other eZ Components development team members (like Derick and Kore), which will also be at IPC. So, seize the chance and tell us, what you think about our work!
And if you don't have a ticket for IPC, yet, take your heels and register now!
Monday, October 22. 2007
On November 20th dynamic-webpages.de will start with the first "Professional PHP" online training. This series of online sessions offers you "24 hours of PHP knowledge, from professionals, to professionals". Topics covered in this series of talks are:
- Object orientation and patterns
- Regular Expressions
- Object-Relational-Mapping
- Security
- XML and Webservices
- Testing with PHPUnit
- AJAX and PHP
- Debugging using Xdebug
- Image manipulation
- PEAR
- Zend Framework
- eZ Components
Several speakers will take care about the different topics, among those are Kore Nordmann (Regex, Images and PHPUnit), Christian Wenz (Security, XML, Webservices), Stephan Schmidt for the OO and patterns section and other community known experts. I myself will present the topics "Xdebug" and "eZ Components".
All talks will last about 2 hours (possibly a bit longer) and will take place on a dedicated day so you are not too filled up with knowledge afterwards. The sessions are presented in German language using a professional online training system, that allows you to interact with the presenter and other attendees in writing and speaking.
Since it is the first time this course is scheduled, you will receive a 200,- € discount when booking right now, so take your heels and jump over to the dynamic-webpages.de training and certification page and save your seat!
Thursday, October 18. 2007
The new semester has right begun, which basically means that the semester vacation as it was named earlier (now the lesson free time) is over. While that meant a lot of exams and work on the book for Kore and me at first, we had time for some vacation and finally to take care about a brand new eZ Components project:
Starting by the end of August we spent almost whole September full-time on designing and implementing this component. The goal was to design a flexible WebDAV server component, which can be used to edit whatever data source on an HTTP server through the WebDAV extension of the protocol, with the full lot of concerns in mind.
Who ever read RFC 2518 or even had a slight glance at it, might have noticed its quality. To state it plainly: It's bullshit. Inconsistencies, spongy phrases and un-logical behaviour definition wherever you look. No wonder, that almost every client behaves slightly differnet, so the first major concern was, that we did not now how clients would expect us to react.
Webdav component architecture - Click to enlarge
The result of the design phase included a custom summarization of the RFC including many other issues we stumbled over and is is a 3 level architecture for the component (as seen in the illustration). The 3 levels incorporate a lot of flexible configuration and adjustment possibilities, as well as a plugin API to realize the many extensions for WebDAV. We are currently working on the necessary client adjustments. While a lot of clients already work, Kore is on reverse engineering the M$ clients constantly, while I'm currently working on the first plugin: Locking.
If you would like to know more about this component and see it in action, come and visit my talk at the International PHP Conference 2007. The family meeting will as usual take place in Mörfelden (near Frankfurt am Main, Germany) from November 4th to 7th. We plan to have an alpha release of the component soon, so I believe you can right forward try it out at the conference and give us feedback.
Looking forward to see you all! :)
Tuesday, September 11. 2007
A week ago Sebastian pointed out an article on LinuxJournal, which talks about documentation coverage. By the question "Isn't that exactly what tobyS' tool does?" I felt remembered, that I wanted to blog the little tool I wrote for eZ Components a while ago. Since this blurb was lurking in my blog for another week, you get my writings a little more belated.
The actual idea was inspired by a blog post by Lukas Smith which threw the term "documentation coverage" into my mind. We (as in "the eZ Components team") are very keen on documentation, which is reflected in extensive API docs, additional tutorials and lots of example code. While the latter 2 are still conveniently checkable manually, API docs are not that easy to validate, resulting from the huge number of classes and class members in eZ Components. Typos, missing doc-tags and violations of our documentation standards are not easily detectable and can occur easily during development. Checking every doc block by hand is a live time work and even if you try to do so, you will miss many small issues.
Therefore I wrote a little tool to assist us with checking the consistency of API documentation. The tool uses PHPs reflection API to retrieve the OO elements of a component and uses a simple (regex based) parser to extract the doc block elements assigned to them. The pure parsing already gives a hint on broken documentation tags, as far as this is possible using a regex based parser. A simple visitor interface can be used to perform checks on the tree of API-elements and their documentation.
While (almost) 100% of eZ Components API elements are documented using a phpDocumentor syntax. So our major concern is not the doc coverage itself, but syntactical correctness of the phpDocumentor annotations and (as far as possible) the semantical correctness. While the first subject can be checked quite easily using a "real" parser (and even with the current one), the latter one is quite tricky, as very semantical check is.
The current implementation checks especially for the availability of certain tags for certain elements (like a @package for each class) and correct values for annotations like @copyright. Beside that it checks if all parameters of a method are documented, if the documented types match eventually available type hints and if the order is correct. Although this sounds not so much work to be performed, we were amazed how many small and bigger issues with the documentation were already found this way.
Since this proof-of-concept implementation works quite good, I started implementing a real parser for the docs, to get a better tree-structure and perform more valuable checks. But this is at a very early stage and not publically available, yet. Anyway, although the current main-script is very eZ Components specific, the whole thing might by valuable to others, too, which is the main reason for this blog post.
You can check the script out of our SVN, where it is called docanalysis.php. Adjusting this stuff to your own project should be easy. Hope this is valuable for someone.
Wednesday, August 8. 2007
More than 4 month of intensive planning, writing, coding, correcting, drawing, rephrasing, more writing,... to keep it short: A huge lot of work and much more even than we expected, after so many people told us, that writing a book would be a huge lot of work. Anyway, although writing was hard beside university, normal work, conferences, girl friend, and other commitments, Kore and me managed to have the world wide first eZ Components book in the final correction phases right now! *jump* While Kore already wrote a chapter for a collaborative work, this is the first book for us 2, which we write completly on our own and for me even the first real contribution to a book overall.

Especially the last phase, right during the exams, was hard and kept us much more from our regular work than we originally expected. Sorry to eZ for our delay there, I'm sure I can fix what I missed so far in a bit more than 2 weeks, when I can start right with real work on the 2007.2 version. Luckily I passed 3 of my 4 exams already very good this year, the 4th does not look very likely to succeed and I fust just need to write a 15 pages evaluation paper on XML accessing facilities in PHP during the rest of the free phase between exams. That means, until mid of October a lot of time for eZ Components, private projects and personal issues.
Amazon has finally setup the image for it, so I can blog this post. ;) The "eZ Components Developers Handbook", that is the working title translated to English, is a full-featured, professional and modular introduction into eZ Components. Beside the basic services of eZ Components you will get to know most of the stable components, among those Template, Graph, PersistentObject, DatabaseSchema, ConsoleTools, SignalSlot and a lot more. Except for 2 really minor ones and the brand new of background and insider information directly from the developer team.
Since eZ Components already have a very good API documentation with basic usage examples and a tutorial including some descriptive text, we decided, that a pure reference book would just be a rephrased print of the docs and not worth much. Therefore, we developed a funny little example application to illustrate, how eZ Components could can be used, as close as possible to the real world. This tiny blog is developed during the book, step by step, introducing new features which are based on different components.
This gives you, as a reader, the possibility to understand how to solve real-world-like problems from the base of an application up to more specific features, like visualizing log data using Graph or creating blog entries out of IMAP or POP mail boxes. We also show extended features of what each component can do for you to catch up all available features, everything build upon our integrated examples.
While this is a nice way of reading the book sequentially and mostly suitable for beginners, we tried to take care, that you can use it as a reference to find commented reference examples as fast as possible. Each chapter has an informal part, introducing the new features for the example application and how they will be realized using the specific components. You won't need to understand th |