Jackalope implementats PHPCR. It is a client to the Jackrabbit JCR server part
Pull request Compare This branch is 2 commits ahead, 1409 commits behind jackalope:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Implementation of a PHP client for the Jackrabbit server, an implementation of the Java Content Repository JCR.

Implements the PHPCR interface (see the phpcr submodule in the lib directory for more about PHPCR).


Visit us at #jackalope on irc.freenode.net

  • ebi at liip.ch
  • david at liip.ch
  • chregu at liip.ch



This is only the frontend. In order to actually do something, you need the Jackrabbit server. Please download Jackrabbit here: http://jackrabbit.apache.org You need the jackrabbit-standalone-2.x.jar

Once you have the jar, start it with $ java -jar jackrabbit*.jar

When you start it the first time, this will create a folder called "jackrabbit" with some subfolders. In order to get the tests up and running, you need to create a workspace called tests.

cp -rp jackrabbit/workspaces/default/ jackrabbit/workspaces/tests/

You need to adjust the attribute "name" in jackrabbit/workspaces/tests/workspace.xml from "default" to "tests". After changing the workspace.xml, you'll have to restart jackrabbit.

Clone the jackalope project

git clone git://github.com/jackalope/jackalope.git

Update submodules

git submodule init
git submodule update

Now you are ready to use the library. Have a look at api-tests/bootstrap.php too see how to instantiate a repository.


There is our continuos integration server with coverage reports at: http://bamboo.liip.ch/browse/JACK

Run phpunit from the api-tests directory. You should have a lot of failed tests, but no exception. If you have something like this, it works (yeah, FAILURES are ok): FAILURES! Tests: 224, Assertions: 99, Failures: 8, Errors: 183, Incomplete: 6, Skipped: 10.

There are two kind of tests. The folder api-tests contains the jackalope-api-tests suite to test against the specification. This is what you want to look at when using jackalope as a phpCR implementation. In order to run the tests, make sure you have jackrabbit running and added the "tests" workspace (see below).

In order to run the tests, go to api-tests and run phpunit without any arguments. It will read phpunit.xml and run all api test suites.

The folder tests contains unit tests for the jackalope implementation. You should only need those if you want to debug jackalope itselves or implement new features. Again, make sure you have the test workspace in jackrabbit.