|
Inspired by: "CouchRest library for Ruby":http://jchrisa.net/drl/_design/sofa/_list/post/post-page?startkey=%5B%22couchrest__restful_ruby_client_%22%5D and the "couchdb-python":http://packages.python.org/CouchDB/client.html#document library. |
|
|
|
h3. Server Functions |
|
|
|
# Specify a server: |
|
@$server = new SetteeServer('http://127.0.0.1:5984');@ |
|
# Database API |
|
## Create a database: |
|
@$ret = $server->create_db('irakli_test');@ |
|
## Drop a database: |
|
@$ret = $server->drop_db('irakli_test');@ |
|
## List all databases: |
|
@$ret = $server->list_dbs();@ |
|
## Get a database object |
|
@$db = $server->get_db('irakli_test');@ |
|
# Document API |
|
## Create/Update a document: |
|
@$ret = $db->save($doc);@ |
|
## Retrieve a document: |
|
@$db_doc = $db->get($id);@ |
|
## Determine the latest revision_id for a document: |
|
@$rev = $db->get_rev($id);@ |
|
## Delete a document: |
|
@$db_doc = $db->delete($doc);@ |
|
# Attachments API |
|
## Add content as attachment: |
|
@$db->add_attachment($doc, "foo.txt", "Some text that will be base64 encoded", "text/plain");@ |
|
## Add a file path to be attached: |
|
@$db->add_attachment_file($doc, "foo.pdf", $file_path, "application/pdf");@ |
|
## Add a file path to be attached (mime-type is auto-detected): |
|
@$db->add_attachment_file($doc, "foo.pdf", $file_path);@ |
|
## Full attachment saving example: |
|
$doc = new stdClass(); |
|
$doc->_id = "attachment_doc"; |
|
$file_path = dirname(__FILE__) . "/resources/couch-logo.pdf"; |
|
$this->db->add_attachment_file($doc, "foo.pdf", $file_path, "application/pdf"); |
|
$db_doc = $this->db->save($doc); |
|
## ATTENTION: there is no "load_attachments" method, because when you load a document, all its attachments get loaded with it, as well. |
|
# Views API |
|
## Create a new view or save a view: |
|
@$view = $db->save_view("some_design_document_id", "a_view_name", $map_src);@ |
|
@$view = $db->save_view("some_design_document_id", "a_view_name", $map_src, $reduce_src);@ |
|
## Get a view (run query and get results): |
|
@$view = $db->get_view("some_design_document_id", "a_view_name");@ |
|
## Parametrized view: |
|
@$view = $db->get_view("some_design_document_id", "a_view_name", "2009/02/17 21:13:39");@ |
|
## Parametrized view with key range: |
|
@$view = $db->get_view("some_design_document_id", "a_view_name", array("2009/01/30 18:04:11", "2009/02/17 21:13:39"));@ |
|
## Parametrized view with key range, ordered descending: |
|
@$view = $db->get_view("some_design_document_id", "a_view_name", array("2009/01/30 18:04:11", "2009/02/17 21:13:39"), true);@ |
|
|
|
|
|
h3. Requirements |
|
# PHP 5.2 or newer |
|
|
|
h3. Recommended |
|
# PHP 5.3 or newer. With PHP 5.2 following functionality will not work: |
|
## Some unit-tests |
|
## Mime type auto-detection. |
|
# pecl_http |