Last week I attended (and spoke at) the International PHP Conference in Mainz, Germany. Besides some very nice discussions and the usual meeting old and making new friends the conference also gave me new impulses regarding collaboration with other Open Source projects, namely Doctrine and Apache Zeta Components.
Back when I started developing FLOW3, I also checked out other frameworks and code libraries we could possibly use for TYPO3. Although the not invented here syndrome certainly didn't spare me, it does have its natural limits. You just don't want to implement your own email library, certainly not spend precious months of your life implementing a WebDAV server. The eZ Components team did all that and the result is a high quality component library which was released under the
In the mean time Kore Nordman, Tobias Schlitt and Derick Rethans are not working at eZ Systems anymore but still want to continue with the development of the components (obvious, as they invested quite some energy and some - formerly not - gray hairs). So they made a deal with eZ who agreed to donate eZ Components to the Apache Foundation and make it an Apache Incubator project.
Anyway, during the IPC I talked a lot with Kore and Tobias about FLOW3, TYPO3 Phoenix and – the now called – Apache Zeta Components (and certainly many other topics which ought to be discussed only at hotel bars). To me it feels so much better now integrating some of the components into TYPO3 now that it is an independent project housed by the Apache Foundation. And there are some obvious candidates: WebDAV support is something we want for the content repository and resource management. The Document component will become very handy for converting content from one format to another and the Image Conversion component might become the new foundation for a GIFBUILDER replacement in TYPO3 Phoenix.
I'd like to try out integrating these components (at some point, it is admittedly not our top priority at the moment) and see how we can make it as easy as possible to integrate any Zeta Component in FLOW3. And I'm looking forward to working with Kore and Tobias on enhancement of existing and possibly development of new components.
Then I had the chance to talk with Benjamin Eberlei, a core developer of Doctrine, about possible integration of Doctrine2 into FLOW3. Karsten had already talked with Benjamin and other participants of FrOSCamp about similarities and differences between the FLOW3 persistence layer and the implementation of Doctrine2. It seems like we are going parallel paths here and because we use the same well-proven design patterns (and even similar annotations), it should be fairly easy to replace the corresponding parts in FLOW3 by Doctrine 2.
Why not earlier? Well yes, that's a pity. When we started implementing the FLOW3 persistence layer, there was no sign yet of Doctrine 2. And Doctrine 1 is a completely different piece of software, following the Active Record pattern and therefore didn't match the object management and persistence approach of FLOW3 at all. Now that version 2 of Doctrine is near its first final release, backed by a reliable team of developers, we're in a different situation.
As a consequence we have now scheduled an exploration task for sprint 5 which is supposed to deliver a good base for decision if FLOW3 should be refactored to use Doctrine2 or not.
If you're already using FLOW3 or recently started writing an application based on it – don't be afraid. The persistence API you're using will almost certainly be fully backwards compatible. We rather plan to add functionality than changing or removing it. On the other side we would gain a lot: the Doctrine team invested quite some energy (and with great results) into optimization and stability, which the FLOW3 core team won't be able to offer in its current constellation and size. It's really a different thing if persistence is your main subject or you implement it alongside a CMS ;-)
So, that's two new inspiring topics I brought home and I'm curious on the impact they will have on the FLOW3 and TYPO3 Phoenix project.Photo: Benjamin Eberlei and me at the IPC. © S&S Media