Joelika.com

PHP JCR — phpCR

So at work, we’re currently starting to migrate our site to Day CQ5. And this week, I completed developer training with a few other members of our team. Probably one of the most interesting things I’ve found about CQ5 is CRX, or the Content Repository Extreme, which just Day’s implementation of the JCR-170 spec (Java Content Repository).

What’s so great about Content Repositories is that they store data in a series of nodes in a tree structure. So instead of having to figure out some complex relational database structure, you are able to develop more rapidly as you can store new data as a sub node in the current node you are in. So for example, say you setup a database to store a request for more information, that includes first name, last name, email, and phone number. But then later, you decide it would also be great if you store some comments that the user could send as well. At this point, you need to then log into some SQL admin and add a new field (if you know how to do that and have the means), or maybe you sat down and thought about how to abstract your tables out, to where you can add field through some form (that is referenced in some other relational table). Either way, both take time and aren’t all that friendly (with the second making your database structure super complex). In contrast, with a content repository, you would just add a new property to the current node you are on (by just referencing it in your code), and BAM. It’s done. And the data is store in that node with everything else. Much, much simpler.

So as you can see, I was pretty excited about the CRX in CQ5, and I started thinking that this would sure be great for a few projects I’ve been thinking about. However, I really didn’t want to go through the steps of installing Apache Jackrabbit, or developing in Java, to access a traditional JCR. And that’s when I discovered that the team behind Typo3 also liked the idea behind JCR, and had took a dormant open source port of JCR (phpCR) and rolled it into a new PHP Framework they are developing for Typo3 5.

What’s great about the framework is that it includes a native PHP implementation for a CR in PHP, and it can be used separately from Typo3 5. The downside? Well, it requires PHP 5.3, which to my knowledge is only in Release Candidate stage now. That, and the framework is brand spanking new, and only an alpha release. Either way, this looks super promising and I’m excited to see the Typo3 taking the time to develop this for the community.

Flow 3 looks as if it is being release under the LGPL license, and you can download the alpha release now to play around with. Don’t forget to also build your own PHP 5.3 if you are interested. I hope to have a chance to play around with it, but probably not until PHP 5.3 is finally released.

Here are some presentations on Flow 3 as well, with at least one on implementing aa JCR in PHP: http://flow3.typo3.org/documentation/slides/

trackback | permalinkComments Feed

Comments are closed.