News Archive
PhpRiot Newsletter
Your Email Address:

More information

State of the Symfony2 CMF

Note: This article was originally published at Planet PHP on 10 November 2011.
Planet PHP

People keep asking me when the CMF will be ready. Or they say that they will join once its further along because they think its too far away to be relevant for their clients today. So the good news is that Liip already has a huge client using CMF components. The combination of Jackalope with Jackrabbit and the PHPCR ODM (provides a similar API than the other Doctrine ORM/ODM) is ready for prime time. There are also already a fair number of components in different state that are close to be finished, simply concepts or not yet compatible. In other words we sort of have all the ideas and many pieces. We just need to put them all together which I will hope will be done no later than Q1 2012. I think we can hit this date even if no new contributors join and we just have the same slow but steady stream of patches. That being said, right now I would guess that 80% of the work is done by Liip employees, either sponsored by Liip, directly funded through client projects are done during spare time. Essentially the only other significant code contributions have been made by Ideato as well as Uwe, Johannes, Thomas and since very recently Nacho. So the numbers are growing, but given the over 200 people on the mailing list this previous list seems a bit short.

So you can imagine that if I say Q1 2012 is possible with things continuing as is, then you can also understand where we could be if others would join the effort. Actually indirectly others sort of have already, but they have done so outside of the CMF project which means right now their solutions are incompatible. Most notably I am talking about the great work by Thomas on the Sonata Bundles but also Fabrice's Radiant port Roger CMS and Florian's Casemate. It should be possible to port these solutions for page construction and media asset management over to PHPCR. As a matter of fact Nacho is working on porting the SonataAdminBundle to PHPCR. But we should also see how the SonataPageBundle and Knplabs Casemate fit into our concepts for page assembly. Speaking of Knplabs, Uwe has already integrated KnpMenu into the Symfony2 CMF and we are hoping to soon also adopt the Doctrine Extension i18n system as a replacement for our MultilangContentBundle.

I have mentioned PHPCR a few times in this post and some of you might not know what this is all about. In short it is a standardized API for content management systems. Now the most complete implementation requires Jackrabbit and yes its written in Java and therefore requires a JVM. But who isn't running Solr or ElasticSearch setup these days? All it takes to start Jackrabbit is a simple call to "java -jar jackrabbit.jar". But sure, still some people will not want a JVM or can't use one. There is also Midgard's PHPCR implementation which is written in C. But this might still not float for some, so there is already the ground work completed for a pure PHP solution that requires either an RDBMS or MongoDB. Currently they can already do CRUD as well as basic tree traversal and full text search. However they are still in their infancy. Also while the MongoDB one has an active maintainer, we need someone to take over the RDBMS one. It is not rocket science, since there is a framework that does most of the work. All that needs to be finished is implementing a single class that handles the final persistence.

Truncated by Planet PHP, read more at the original (another 2228 bytes)