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.
Permalink
Failed to load latest commit information.
src/PHPCouchDB
tests
.gitignore
.travis.yml
CONTRIBUTING.md
LICENSE.md
MAINTAINERS.md
README.md
composer.json
composer.lock
phpdox.xml

README.md

Build Status

PHP CouchDB

⚠️ 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+.

Installation

It's recommended to install this library using Composer:

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

Usage

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

<?php

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
print_r($doc);

// 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
$updated_doc->delete();

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]].