import
[disclosr.git] / couchdb / settee / README.textile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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