A Document Mapper based on CouchDB
Latest commit 32aa02f Dec 22, 2016 @Ocramius Ocramius committed on GitHub Merge pull request #128 from mikeSimonson/update-travis-config
Updating the supported php versions



Build Status Scrutinizer Quality Score

Doctrine CouchDB is a mapper between PHP and CouchDB documents. It uses a metadata mapping pattern to map the documents to plain old php objects, no ActiveRecord pattern or base class of any kind is necessary.

Metadata mapping can be done through annotations, xml, yaml or php. A sample PHP object that is mapped to CouchDB with annotations looks like this:

 * @Document
class Article
    /** @Id */
    private $id;

     * @Field(type="string")
    private $topic;

     * @Field(type="string")
    private $text;

     * @ReferenceOne(targetDocument="User")
    private $author;

    // a bunch of setters and getters

A simple workflow with this document looks like:

$article = new Article();
$article->setTopic("Doctrine CouchDB");
$article->setAuthor(new Author("beberlei"));

// creating the document

$article = $dm->find("Article", 1234);
$article->setText("Documentation, and more documentation!");

// update the document

// removing the document

You can play around with the sandbox shipped in the sandbox/ folder of every git checkout or read the documentation at http://docs.doctrine-project.org/projects/doctrine-couchdb/en/latest/