Skip to content
This repository has been archived by the owner on Sep 16, 2021. It is now read-only.

Architecture

Rodrigo Rigotti Mammano edited this page Mar 25, 2014 · 20 revisions

Overview

Here is a first simple diagram to illustrate how JCR compares to RDBMS/NoSQL. You might notice that there is very little difference to the diagram below.

PHPCRvsRDBMSvsNoSQL

PHP content repository

PHPCR defines a uniform way how to access and manage content. It is an API definition that can be implemented on top of different data stores. Jackalope and Midgard implement this interface.

PHPCR is an adaption of the Java Content Repository specification JCR. But it does not try to copy the JCR interfaces 1:1 and instead provides a PHP-ified equivalent API.

Doctrine PHPCR-ODM

We built PHPCR-ODM, a object-document mapper on top of PHPCR in the doctrine family. It can be used to map document classes into the storage layer. In addition to the general ODM features, PHPCR-ODM provides you with @Children and @Parent annotations to model the hierarchy. The document manager also offers ways to work with versions.

Direct PHPCR Access

Now what this diagram tries to illustrate with the two arrows is that the Userland Code will at times interact with Jackalope directly and this is where using the JCR specification gets interesting. For example, you can move nodes in the tree or copy whole parts of a tree, work with the PHPCR workspaces and so on. For searching, we will expose the PHPCR query builder.

Clone this wiki locally