first commit
This commit is contained in:
429
Swoft_BackEndApi/app/Utils/bmob/lib/BmobObject.class.php
Executable file
429
Swoft_BackEndApi/app/Utils/bmob/lib/BmobObject.class.php
Executable file
@@ -0,0 +1,429 @@
|
||||
<?php
|
||||
|
||||
include_once 'BmobRestClient.class.php';
|
||||
|
||||
/**
|
||||
* BmobObject object对象类
|
||||
* @author karvinchen
|
||||
* @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL)
|
||||
*/
|
||||
class BmobObject extends BmobRestClient
|
||||
{
|
||||
|
||||
public $_includes = array();
|
||||
private $_className = '';
|
||||
|
||||
public function __construct($class = '', $sessionToken = '')
|
||||
{
|
||||
if ($class != '') {
|
||||
$this->_className = $class;
|
||||
} else {
|
||||
$this->throwError('创建对象时请包含对象id');
|
||||
}
|
||||
|
||||
if ($sessionToken != '') {
|
||||
$this->bmobSessionToken = $sessionToken;
|
||||
}
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getRequestUrl($id=""){
|
||||
$className = $this->_className;
|
||||
if( "_User" == $className ){
|
||||
$className = "users";
|
||||
} elseif ( "_Installation" == $className ) {
|
||||
$className = "installations";
|
||||
}
|
||||
if( $id ){
|
||||
if ( $this->_className!="_User" && $this->_className!="_Installation") {
|
||||
return 'classes/' . $className . '/' . $id;
|
||||
}else{
|
||||
return $className . '/' . $id;
|
||||
}
|
||||
} else {
|
||||
if ( $this->_className!="_User" && $this->_className!="_Installation") {
|
||||
return 'classes/' . $className ;
|
||||
}else{
|
||||
return $className ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加对象
|
||||
* @param array $data 对象的属性数组
|
||||
*
|
||||
*/
|
||||
public function create($data = array())
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->setData($data);
|
||||
|
||||
if (count($this->data) > 0 && $this->_className != '') {
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'POST',
|
||||
'sendRequestUrl' => $this->getRequestUrl(""),
|
||||
'data' => $this->data,
|
||||
));
|
||||
return $sendRequest;
|
||||
} else {
|
||||
$this->throwError('创建对象时请添加对象数据或指定对象id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对象
|
||||
* @param string $id 对象id, 当为空时表示获取所有对象
|
||||
* @param array $condition ,查询条件
|
||||
*/
|
||||
public function get($id = "", $condition = array())
|
||||
{
|
||||
if ($this->_className != '') {
|
||||
if ($id) {
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'GET',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'condition' => $condition,
|
||||
));
|
||||
} else {
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'GET',
|
||||
'sendRequestUrl' => $this->getRequestUrl(""),
|
||||
'condition' => $condition,
|
||||
));
|
||||
}
|
||||
|
||||
return $sendRequest;
|
||||
} else {
|
||||
$this->throwError('获取对象时请指定对象id');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新对象的属性
|
||||
* @param string $id 对象id
|
||||
* @param array $data 对象的属性数组
|
||||
*/
|
||||
public function update($id, $data = array())
|
||||
{
|
||||
|
||||
if ($this->_className != '' || !empty($id)) {
|
||||
|
||||
if ($data) {
|
||||
//添加对象的属性
|
||||
$this->setData($data);
|
||||
} else {
|
||||
$this->throwError('请指定要更新的属性');
|
||||
}
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改对象时请指定对象id');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除对象
|
||||
* @param string $id 对象id
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
if ($this->_className != '' || !empty($id)) {
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'DELETE',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
} else {
|
||||
$this->throwError('删除对象时请指定对象id');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 任何数字字段进行原子增加或减少的功能
|
||||
* @param string $id 对象id
|
||||
* @param string $field 需要修改的数字字段
|
||||
* @param int $amount 不加负号表示增加, 加负号表示减少
|
||||
*/
|
||||
public function increment($id, $field, $amount)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' || !empty($id)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('increment', $amount);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改对象时请指定对象id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 在一个对象中删除一个字段
|
||||
* @param string $id 对象id
|
||||
* @param string $field 需要删除的字段
|
||||
*/
|
||||
public function deleteField($id, $field)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($id) && !empty($field)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('deleteField', $field);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改对象时请指定对象id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加数组数据
|
||||
* @param string $field 需要修改的字段
|
||||
* @param string $data 添加的数组
|
||||
*/
|
||||
public function addArray($field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('addArray', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'POST',
|
||||
'sendRequestUrl' => $this->getRequestUrl(""),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('添加对象时请指定对象field或数据');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改数组数据
|
||||
* @param string $id id
|
||||
* @param string $field 需要修改的字段
|
||||
* @param string $data 修改的数组
|
||||
*/
|
||||
public function updateArray($id, $field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($id) && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('addArray', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改对象时请指定对象id和field和数据');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数组数据
|
||||
* @param string $id id
|
||||
* @param string $field 需要修改的字段
|
||||
* @param string $data 删除的数组
|
||||
*/
|
||||
public function deleteArray($id, $field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($id) && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('delArray', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('删除时请指定对象id和field和数据');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加关联对象(1对1)
|
||||
* @param string $field 需要添加关联的字段
|
||||
* @param string $otherObject 需要修改的字段
|
||||
* @param string $otherObjectId 删除的数组
|
||||
*/
|
||||
public function addRelPointer($data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($data) ) {
|
||||
$this->data = $this->dataType('addRelPointer', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'POST',
|
||||
'sendRequestUrl' => $this->getRequestUrl(""),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('添加关联对象时请指定对象id和field和数据');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加关联对象(1对多)
|
||||
* @param string $field 需要添加关联的字段
|
||||
* @param array $data 关联的数据
|
||||
*/
|
||||
public function addRelRelation($field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('addRelRelation', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'POST',
|
||||
'sendRequestUrl' => $this->getRequestUrl(""),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('添加关联对象时请指定对象id和data');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改关联对象(1对1)
|
||||
* @param string $id id
|
||||
* @param string $field 需要添加关联的字段
|
||||
* @param string $otherObject 需要修改的字段
|
||||
* @param string $otherObjectId 删除的数组
|
||||
*/
|
||||
public function updateRelPointer($id, $field, $otherObject, $otherObjectId)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($field) && !empty($otherObject) && !empty($otherObjectId)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('updateRelPointer', array($field, $otherObject, $otherObjectId));
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改关联对象时请指定对象id和field和数据');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改关联对象(1对多)
|
||||
* @param string $id
|
||||
* @param string $field 需要添加关联的字段
|
||||
* @param array $data 关联的数据
|
||||
*/
|
||||
public function updateRelRelation($id, $field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($id) && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('addRelRelation', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('修改关联对象时请指定对象id和field和data');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除关联对象
|
||||
* @param string $id
|
||||
* @param string $field 需要添加关联的字段
|
||||
* @param array $data 关联的数据
|
||||
*/
|
||||
public function deleteRelation($id, $field, $data)
|
||||
{
|
||||
//重设对象的属性
|
||||
$this->cleanData();
|
||||
if ($this->_className != '' && !empty($id) && !empty($field) && !empty($data)) {
|
||||
|
||||
$this->data[$field] = $this->dataType('removeRelation', $data);
|
||||
|
||||
$sendRequest = $this->sendRequest(array(
|
||||
'method' => 'PUT',
|
||||
'sendRequestUrl' => $this->getRequestUrl($id),
|
||||
'data' => $this->data,
|
||||
));
|
||||
|
||||
return $sendRequest;
|
||||
|
||||
} else {
|
||||
$this->throwError('删除关联对象时请指定对象id和field和data');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user