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.

Over the holidays several people in the community have been quite busy. Especially Emmanuel
and Daniel have been pushing things forward. As a result the
SonataAdminBundle integration has been improved considerably.
Daniel has made several contributions to PHPCR ODM. Henri also just published
an update on the work going on around create.js that we use to
provide inline editing. At the same time there are now several new contributors each month bringing a stream of
code and documentation improvements. I especially want to mention Tiago here, as he
did a lot of very important additions and corrections to the documentation.

At the same time Liipers have also worked on several topics. David is putting the final
touches on updating PHPCR and Jackalope
to match the recent changes done in the JCR 2.1 (ie. JSR-333) spec. Many of the changes
there were a result of feedback from the PHPCR team, so this update will bring some important improvements. Adrien has brought the integration
of create.js for content authoring to a usable state.
I have been busy with some smaller improvements to Jackalope Doctrine DBAL
and some bigger changes to PHPCR ODM. At the same time we are quite excited that both
ezPublish5 and
Drupal 8 will leverage the CMF Routing component to handle the needs for dynamic routing.

So things are progressing and for people willing to live a bit on the edge, all components are quite ready
for production use even today. However we are still stuck in alpha state, which means we try not to break BC unnecessary but it
still happens frequently. The next step is going to beta, at which point we will become more hesitant to break BC
and where we will always provide upgrade documentation and if possible also an update script. In my humble opinion
there is really no reason not to move all parts in the stack to beta more or less right now. Here is what I believe
to be part of our stack:

I added a (*) to PHPCR, since there will in fact not be a stable release before JSR-333 is ratified, which I expect
to happen sometime in 2013. However I do not expect anything else but minor tweaks if any.

As for the (**) here I mean that we also need stable releases of dependencies, like f.e. FOSRestBundle
and createphp. Also note that I specifically omitted SearchBundle as
I am not sure if it will be ready in time and its not really core functionality per se.

As our goal is to make a stable release around the time of the 2.2/2.3 core releases we however have to quickly
move past the beta label so that we can provide a reliable development platform. In order to get there
I think we need to do work on the following:

1) Jackalope (MUST)

  • Merge the JSR-333 updates mentioned above.
  • Fix the left-over issues from the initial work to provide XML import/export
  • Wrap up the open PRs in the Doctrine DBAL implementation

2) Create.js (MUST)

  • Fix the open issues in our integration
  • Create an example for inline block creation/ordering in the sandbox and standard edition
  • Improve support for non visible metadata (like tags, dates, publish states etc.)

3) Documentation (MUST)

  • Continue to make improvements to the documentation

4) KnpMenu (SHOULD)

5) Sonata (SHOULD)

  • Add more standard blocks (f.e. slide show)
  • Add support for reordering child nodes in the tree UI
  • Add support for SonataCacheBundle to allow for caching of block content
  • Add support for SonataMediaBundle to allow for more flexible media asset management

Anything I missed?

Hi, I am pretty interested in the CMF. However, i failed to find any comprehensive documents on the structure and detail of the CMF which i s pretty bad as an open source project. Most of the doucmentations focus on how to configure and install the CMF which is good. however, without proper detail of the CMF, it will be hard for programmers to start developing on it. It will be good if there is documentations on how to use it, Symfony’s documentation is awesome hope there is something for CMF too.

I assume the intro section on is not sufficient?

There are a number of slides linked on We are one by one migrating the content of these slides into the documentation. You might especially be interested in:

I agree with the lists and plans above.

JSR-333 changes are now merged. would be cool however if we manage to finish to have CND support for all PHPCR implementations.

The XML import/export would really need a loving brain.

We have to find and implement a solution for as well. I keep asking crell until he can give his input, then do it.

Hey Lukas,

Awesome work. I still keep a keen eye out for the CMF and I am very happy to see a release path forming!

Without much hands-on experience and hacking, I can’t contribute really. What would help most, I guess, is a sandbox running more or less out-of-the-box, and maybe some show cases of projects already running on it to help convince company management positions to either start using it or investing time for open source development.

That said, I still lurk the dev list and hope to start using at least parts of it some time this year. 2013 is full of promise ;)

Keep up the awesome and relentless work!

Thanks! Exciting times for all of us in the CMF project. We just started a client project (the client approached us about the CMF) and its quite amazing what a single developer from our team was able to integrate into the customers Symfony2 app within a week.

Oh and we already have a sandbox. You can see it running here:

The code with setup instructions (including an optional vagrant box) is here:

Hallo Lukas,

ich hatte am Wochenende endlich mal Zeit, mir den Code von Symfony CMF durchzusehen und mich etwas einzuarbeiten.

Ich kann dazu nur eins sagen: HUT AB, Genial gemacht.

viele Grüße, Sebastian

Danke .. die ganze Community hat ja auch schon einiges an Zeit rein investiert. Jetzt muessen wir auf der Zielgraden nur noch das ganze zu einem gut Dokumentierten Stable-Release hinbekommen.