Just about a month ago Zend Technologies announced Zend PHP Framework in line with the Zend PHP Collaboration Project with the stated goal to offer a “de facto standard PHP Web application development and deployment environment”. Not much information has been made public by Zend, which caused a lot of discussion. Just here and there, involved persons piped up and delivered more or less useful information tidbits. Currently, Zend is working on a first version while working out the collaboration infrastructure and engagement guidelines.
While Zend is enjoying the attention in the PHP world, eZ systems determinedly worked on a very similar project called eZ components. Let’s have a closer look at what it has to offer and how it compares to Zend’s PHP Framework.
Both projects seem to come as independent, loosely coupled components to reduce dependency, of which each user can choose for himself which ones to use. While eZ components shows no signs of designated application design, the Zcontroller and ZpageController components in Zend PHP Framework could foreshadow some sort of MVC framework.
A list of eZ components can be found right here. Unfortunately it’s hard to compare it to Zend’s PHP Framework since there is only a small directory list available, which dates to October 24th. Nevertheless, first similarities can also be found: Standard components of a framework like database abstraction, exceptions, logging, templating but also input filters can be found in both projects.
Beyond that, Zend’s framework offers a search and a URI component. While I’m still wondering how the former could look like, I’m already hoping for the latter one to be “the one class to rule them all” as answer to our URI problems. eZ, on the other hand, offers a broader set of tools: There are generic components like Cache, Configuration, Template and Translation as well as more concrete tools like Archive, File, Image*, Mail and PhpGenerator.
Zend only offers an implementation of ActiveRecord as database abstraction so far. eZ delivers a similar PersistentObject component, but also a thin database layer on top of PDO and DatabaseSchema to tinker with database schemata. Personally, I’d like to see an additional lightweight ActiveRecord implementation that works without explicit datatype definitions.
For templating, eZ relies on the eZ publish template language, which is very similar to Smarty. It’s not yet known how Zend is going to implement this component. Of course, it would be nice to have free choice on what kind of templating to use.
On the spur of the moment i can think of some additional (though less important) areas that would be nice to have components for:
- Web Services
- Specialized data structures in SQL (ordered lists, sets, trees, etc.)
eZ recently switched from a copyleft-style LGPL licence to a more permissive BSD license. This means that it can be used by anyone for any purpose. Zend PHP Framework comes with a “PHP-type of license” which is similar to the BSD license.
Zend’s framework counts on contributions from the community, while eZ components is being developed by the makers of eZ publish. On one hand I can imagine a lot of people wanting to contribute to a framework, as they’re used to with open source. On the other hand we don’t know yet how easy that’s actually going to be for normal users and what obligations there are to fulfill for the Zend PHP Framework. eZ, however, has full control over design and implementation of its framework. This should result in more consistent design and code. After all, they have some talented developers in their ranks and are quite experienced with this kind of work.
A first beta version of eZ components has been released on Monday, November 28th 2005. Supporters of the Zend PHP Framework will have to be patient: Zend is still “setting up the collaboration infrastructure and engagement guidelines”, which won’t be finished until January 2006 according to the official Q&A.
Since Zend Technologies announced its framework quite precipitiously, they had to take some criticism. Contrary to eZ, who refrained from pompous talk and focussed on programming. It paid off as they are now able to steal Zend’s show, which is good for us: eZ raised the bar for delivering a quality PHP framework and forces Zend to match their work.