chore:适配hyperf3.0
This commit is contained in:
parent
efc747a8b4
commit
66175b4221
|
@ -8,12 +8,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.2",
|
"php": ">=8.0",
|
||||||
"hyperf/framework": "^2.2.0",
|
"hyperf/framework": "3.*",
|
||||||
"psr/container": "^1.0",
|
"psr/container": "^1.0",
|
||||||
"hyperf/pool": "^2.2",
|
"hyperf/pool": "3.*",
|
||||||
"hyperf/utils": "^2.2.0",
|
"hyperf/utils": "3.*",
|
||||||
"hyperf/di": "^2.2.0",
|
"hyperf/di": "3.*",
|
||||||
"ext-mongodb": "*"
|
"ext-mongodb": "*"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Hyperf\Mongodb;
|
namespace Hyperf\Mongodb;
|
||||||
|
|
||||||
!defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1));
|
!defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__));
|
||||||
|
|
||||||
class ConfigProvider
|
class ConfigProvider
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,8 @@ class MongoDBException extends Exception
|
||||||
{
|
{
|
||||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$this->code = empty($code) ? __LINE__ : $code;
|
parent::__construct($message, $code, $previous);
|
||||||
|
$this->code = empty($code) ? __LINE__ : $code;
|
||||||
$this->message = $message;
|
$this->message = $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -248,32 +248,7 @@ class MongodbConnection extends Connection implements ConnectionInterface
|
||||||
// 查询数据
|
// 查询数据
|
||||||
$data = $result = [];
|
$data = $result = [];
|
||||||
//每次最多返回10条记录
|
//每次最多返回10条记录
|
||||||
if (!isset($options['limit']) || (int) $options['limit'] <= 0) {
|
return $this->limitTen($options, $limit, $currentPage, $filter, $namespace, $data, $result);
|
||||||
$options['limit'] = $limit;
|
|
||||||
}
|
|
||||||
if (!isset($options['skip']) || (int) $options['skip'] <= 0) {
|
|
||||||
$options['skip'] = $currentPage * $limit;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
$query = new Query($filter, $options);
|
|
||||||
$cursor = $this->connection->executeQuery($this->config['db'].'.'.$namespace, $query);
|
|
||||||
foreach ($cursor as $document) {
|
|
||||||
$document = (array) $document;
|
|
||||||
$document['_id'] = (string) $document['_id'];
|
|
||||||
$data[] = $document;
|
|
||||||
}
|
|
||||||
$result['totalCount'] = $this->execCount($namespace, $filter);
|
|
||||||
$result['currentPage'] = $currentPage;
|
|
||||||
$result['perPage'] = $limit;
|
|
||||||
$result['list'] = $data;
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
|
||||||
} catch (Exception $e) {
|
|
||||||
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
|
||||||
} finally {
|
|
||||||
$this->pool->release($this);
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -357,13 +332,7 @@ class MongodbConnection extends Connection implements ConnectionInterface
|
||||||
// 查询数据
|
// 查询数据
|
||||||
$result = [];
|
$result = [];
|
||||||
try {
|
try {
|
||||||
$query = new Query($filter, $options);
|
$result = $this->getArr($filter, $options, $namespace, $result);
|
||||||
$cursor = $this->connection->executeQuery($this->config['db'].'.'.$namespace, $query);
|
|
||||||
foreach ($cursor as $document) {
|
|
||||||
$document = (array) $document;
|
|
||||||
$document['_id'] = (string) $document['_id'];
|
|
||||||
$result[] = $document;
|
|
||||||
}
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@ -399,32 +368,7 @@ class MongodbConnection extends Connection implements ConnectionInterface
|
||||||
$data = [];
|
$data = [];
|
||||||
$result = [];
|
$result = [];
|
||||||
//每次最多返回10条记录
|
//每次最多返回10条记录
|
||||||
if (!isset($options['limit']) || (int) $options['limit'] <= 0) {
|
return $this->limitTen($options, $limit, $currentPage, $filter, $namespace, $data, $result);
|
||||||
$options['limit'] = $limit;
|
|
||||||
}
|
|
||||||
if (!isset($options['skip']) || (int) $options['skip'] <= 0) {
|
|
||||||
$options['skip'] = $currentPage * $limit;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
$query = new Query($filter, $options);
|
|
||||||
$cursor = $this->connection->executeQuery($this->config['db'].'.'.$namespace, $query);
|
|
||||||
foreach ($cursor as $document) {
|
|
||||||
$document = (array) $document;
|
|
||||||
$document['_id'] = (string) $document['_id'];
|
|
||||||
$data[] = $document;
|
|
||||||
}
|
|
||||||
$result['totalCount'] = $this->execCount($namespace, $filter);
|
|
||||||
$result['currentPage'] = $currentPage;
|
|
||||||
$result['perPage'] = $limit;
|
|
||||||
$result['list'] = $data;
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
|
||||||
} catch (Exception $e) {
|
|
||||||
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
|
||||||
} finally {
|
|
||||||
$this->pool->release($this);
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -752,4 +696,61 @@ class MongodbConnection extends Connection implements ConnectionInterface
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $filter
|
||||||
|
* @param array $options
|
||||||
|
* @param string $namespace
|
||||||
|
* @param array $result
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function getArr(array $filter, array $options, string $namespace, array $result): array
|
||||||
|
{
|
||||||
|
$query = new Query($filter, $options);
|
||||||
|
$cursor = $this->connection->executeQuery($this->config['db'].'.'.$namespace, $query);
|
||||||
|
foreach ($cursor as $document) {
|
||||||
|
$document = (array)$document;
|
||||||
|
$document['_id'] = (string)$document['_id'];
|
||||||
|
$result[] = $document;
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $options
|
||||||
|
* @param int $limit
|
||||||
|
* @param int $currentPage
|
||||||
|
* @param array $filter
|
||||||
|
* @param string $namespace
|
||||||
|
* @param array $data
|
||||||
|
* @param array $result
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* @throws MongoDBException
|
||||||
|
*/
|
||||||
|
public function limitTen(array $options, int $limit, int $currentPage, array $filter, string $namespace, array $data, array $result): array
|
||||||
|
{
|
||||||
|
if (!isset($options['limit']) || (int)$options['limit'] <= 0) {
|
||||||
|
$options['limit'] = $limit;
|
||||||
|
}
|
||||||
|
if (!isset($options['skip']) || (int)$options['skip'] <= 0) {
|
||||||
|
$options['skip'] = $currentPage * $limit;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$data = $this->getArr($filter, $options, $namespace, $data);
|
||||||
|
$result['totalCount'] = $this->execCount($namespace, $filter);
|
||||||
|
$result['currentPage'] = $currentPage;
|
||||||
|
$result['perPage'] = $limit;
|
||||||
|
$result['list'] = $data;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw new MongoDBException($e->getFile().$e->getLine().$e->getMessage());
|
||||||
|
} finally {
|
||||||
|
$this->pool->release($this);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user