Symfony CMF: what is left todo?
Symfony CMF: what is left todo? Just as Fabien did in his "Symfony 2.2 Schedule Update" I would first like to wish everyone a happy 2013. But as Fabien did, I also want to get back to business now too.
Symfony CMF: what is left todo? Just as Fabien did in his "Symfony 2.2 Schedule Update" I would first like to wish everyone a happy 2013. But as Fabien did, I also want to get back to business now too.
So I decided to take 2 months off this summer, quite on short notice so I would like to thank the Liip management to be so flexible on this. Of course I don't really ever take off from open source, so I have spent a fair bit of time working on the Symfony CMF. Gathering feedback from the community via multiple blog posts, which taught me some things about OSS and then doing something with it like starting documentation, a simpler initial setup and adding some missing features. I also gave talks about Symfony2 at user groups in Vienna, Odessa and Kiev and attended DrupalCon in Munich. Oh and I gave another talk at Centralway as they seem to also be diving into the world of Symfony2. During my time off I also spent a bit of time tweaking the integration example we have with Magnolia ahead of my presentation at the Magnolia Conference on PHPCR on the second day back from "vacation". It seems like just as my "vacation" contained what others would consider work, my week back at "work" contained what others would call "vacation", i.e. I traveled to the Croatian island of Bol to attend ezSummerCamp to teach about Symfony and help interface the ezPublish community with that of Symfony2. Finally I attended the Symfony2 CMF hackday in Fribourg. What follows are some more details on what I learned along the way of all these trips and the things I worked on in between.
Frontend editing is a hot topic at the moment. With the HTML5 content-editable, there is no longer any excuse to reload a page in edit mode and render forms on server side. And even less to use the iframe mess of traditional WYSIWYG editors. One excellent frontend editing project is create.js. Its main strength is to use RDF annotations in HTML (RDFa) to explain the semantic structure of your content. Then you load create.js and tell it what editors to use for your entities. Storage happens based on backbone.js, the server backend is easy to implement.
The Doctrine PHPCR-ODM allows you to easily map your PHP objects onto content repository nodes. Since last week, the PHPCR-ODM leverages the versioning support of PHPCR in the ODM layer. This gives your application a very simple way to work with versioned content.
As you maybe have heard, we won the IKS Semantics UX contest a few weeks ago (see this and this for more details). We of course we're not lazy in the meantime and integrated Apache Stanbol into this editor.
Over the last weeks, Dan, Brian and myself worked on adding translation capabilities to Doctrine PHPCR-ODM. PHPCR-ODM is an object - document mapper for the php content repository (PHPCR). Thanks to the Liip Ecostar process, we got funding to do this during work time.
Following the Symfony Day Cologne 2011, we will do a hackday on the Symfony Content Management Framework in Cologne, Germany. Interlutions kindly provides room for the hackday. We will start on Saturday October 22nd, at 10 a.m. and hack until they have to throw us out (or we decide to leave of our own accord). We will discuss the progress of the efforts to implement things and update the roadmap, then hack along on the various topics.
Yesterday we started working on an editor for the Symfony2 Content Management Editor, the LiipVieBundle. We use VIE and - until something non-GPL comes along - the Aloha editor. VIE is a piece of javascript on top of backbone.js that handles storing data with a REST backend. In Symfony2, this is a breeze thanks to the FOSRestBundle. Sounds complicated? Its actually quite simple, at least for the user. I made a short video to show how it looks.

This weekend we had a hackday on PHPCR. The goal was to coordinate the efforts of Midgard to implement PHPCR with the Jackalope project. We ended up doing a few important cleanups to the PHPCR API definition (see below). We had Henri and Eero from the Midgard project, Benjamin from the Doctrine project and Jordi, Lukas, Chregu and myself (David) from Liip. On the second day, Uwe, Johannes and Dan join us to push the PHPCR doctrine layer further.