-
Notifications
You must be signed in to change notification settings - Fork 2
/
MongoResource.php
69 lines (54 loc) · 1.66 KB
/
MongoResource.php
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
61
62
63
64
65
66
67
68
69
<?php
class MongoResource {
// Nobody should mess with these...
private $collection = null;
private $object = array();
private $id = null;
/** Construct the resource. */
function __construct($collection, $params) {
global $db;
$this->collection = $db ? $db->{$collection} : null;
$this->id = !empty($params['id']) ? $params['id'] : null;
}
/** Load this resource. */
public function load() {
// If the collection or id doesn't exist, then load nothing...
if (empty($this->collection) || empty($this->id)) {
return array();
}
// Get the object if it hasn't already been loaded.
if (empty($this->object)) {
$this->object = $this->collection->findOne(array('id' => $this->id));
}
// Return the object.
return $this->object;
}
/** Saves this resource. */
public function save($object) {
// If the collection doesn't exist, then save nothing...
if (empty($this->collection) || empty($object)) {
return false;
}
// If the object already exists in mongo.
if (!empty($this->object['_id'])) {
// Save the object in mongo.
$this->object = $this->collection->save($object);
}
else {
// Insert the object in mongo.
$this->object = $this->collection->insert($object);;
}
// Return that this object was saved.
return true;
}
/** Deletes this resource. */
public function delete() {
// If the collection doesn't exist, then save nothing...
if (empty($this->collection) || empty($this->id)) {
return false;
}
// Remove the object from mongo.
$this->collection->remove(array('id' => $this->id));
return true;
}
}