PHP Library for PHP 7 and CouchDB 2
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Build Status


⚠️ This project is under early and active development. Comments, experimentation and feedback all gratefully received.

A lightweight library to make it very easy to work with CouchDB from PHP. Uses Guzzle, requires PHP 7+.


It's recommended to install this library using Composer:

composer require ibm-watson-data-lab/php-couchdb


Here's the tl;dr of how to begin. For more detailed examples, see the wiki and/or generate the API docs with composer docs


require "vendor/autoload.php";

// connect to CouchDB (does make a call to check we can connect)
$server = new \PHPCouchDB\Server(["url" => "http://localhost:5984"]);

// get a list of databases; each one is a \PHPCouchDB\Database object
$databases = $server->getAllDbs();

// work with the "test" database (also a \PHPCouchDB\Database object)
$test_db = $server->useDb(["name" => "test", "create_if_not_exists" => true]);

// add a document - you may specify the "id" here if you like
$doc = $test_db->create(["name" => "Alice", "interests" => ["eating", "wondering"]]);

// inspect the document

// update the document - a NEW document is returned by this operation, showing the server representation of the document
$doc->friends[] = "Cheshire Cat";
$updated_doc = $doc->update();

// done?  Delete the doc

For more examples, conflict handling and really everything else, see more detailed documentation on the wiki.

For Developers

Contributions and issues are all very welcome on this project - and of course we'd love to hear how you're using the library in your own projects.

For information about working with the project locally or opening pull requests, see [[CONTRIBUTING]].