JCR provides a great standardized storage for hierarchical content and supports some nice features like full text search, versioning, transactions, observation, and more.

Our main goal is to create a PHP Connector for Jackrabbit without using any Java. To achieve this goal our development will go trough two stages. In a first step we have built a simple demo using the Java Bridge from Zend Server. Based on this we are now writing functional tests for the api. This gives us a great way to replace the Java Bridge with a native PHP module in a second step.

This is how that will look like:

The current modules consist of phpCR API Interfaces which are subject to change since we’re trying to share it with another project to make sure you can easily swap your library in case you’re not happy with it.

Then there is jr_cr which is the prototype implementation using the Zend Java Bridge and the Jackrabbit davex client which we mainly use to write functional tests and show the demo.

Our current growing jewel are the Jackalope API tests which are using PHPUnit as testing environment. We want to achieve a test suite that completely covers the API and enables other projects to check if they’re compatible with the phpCR interfaces.

Jackalope itself will be the PHP connector not making use of any framework to provide a pure library with as few dependencies as possible. It’s not targeted on any use case yet which should make it very flexible for many projects.