There are two actually quite cool reasons for the delays. One is that we had two projects at Liip where we had to integrate the CMF into existing projects. It was fun, but we found quite a lot of issues and missing features in Doctrine PHPCR-ODM that we fixed resp. implemented. (The Symfony2 Form component is incredibly powerful, but requires the persistance layer to work very exactly and we did not want any more workarounds and hacks to a achieve functionality.) The other reason is that many other people started using the CMF too. Some found issues that need to be fixed, others even managed to contribute fixes themselves – but which took time to review and comment on. Also, a lot of new features have been built or are currently being built.
One feature I am particularly happy with is that PHPCR-ODM can now cascade persist referrers. This is quite useful for example to embed route and menu editing into the edit form for static content, as shown in the screenshot. (This is already in the ContentBundle and should come into the sandbox with the next update.)
Getting to a release
As soon the above 2 client projects have stabilized, Lukas and I plan to focus on cleaning the base layers PHPCR and Jackalope to a point where we can tag release candidates, then bring Doctrine PHPCR-ODM to a state that can be called 1.0. We might have to postpone new features, but try to find all the interface changes and similar things to avoid BC breaks once 1.0 is stable.
Getting things out depends on contributions from the community too. While it is great to get new features, we now need to focus on cleaning up those we already have. On improving the documentation. On investigating bugs. The Release plan links the important missing pieces, if you want to dig into something.
There is the idea for a hackday in May or June. Please contact me or Lukas if you are interested. If we have enough interest, it is much more likely that we actually organize something.
I will present PHPCR at the Symfony Live conference in Paris beginning of April. I will also be at the hackday on Saturday if anybody is interested in meeting me there. Additionally, Thomas and me planned a (very focused) hackday on April 3rd to integrate SonataPagesBundle with PHPCR on the 3rd. If you are interested in helping with that integration, please contact me or Thomas.
This week, we also did a hackday at Liip, with focus on documentating some of those new features people built. I tried to collect what we achieved that day:
- Allow to edit menu and routes embedded in content documents
- Slideshow block and documentation
- Documentation for the Reference collection form type
- Documentation for the Image form type. And a imagine cache invalidator service. Wanted to make the form type more powerful, but still looking for the right solution.
- Improved Symfony documentation on doctrine events
- Doctrine exposes the method to get the current locale of a document regardless of whether the locale is mapped on the document.
- The Image and File documents of doctrine are cleaned up
- Started work on another problem when replacing child documents but still discussing the concept
- Jackalope-Jackrabbit will give better exceptions on login problems