改名
This commit is contained in:
@@ -181,7 +181,7 @@ class ActiveQuery extends Component
|
|||||||
*/
|
*/
|
||||||
public function page(int $size, callable $callback): Pagination
|
public function page(int $size, callable $callback): Pagination
|
||||||
{
|
{
|
||||||
$pagination = objectPool(Pagination::class, [$this]);
|
$pagination = new Pagination($this);
|
||||||
$pagination->setOffset(0);
|
$pagination->setOffset(0);
|
||||||
$pagination->setLimit($size);
|
$pagination->setLimit($size);
|
||||||
$pagination->setCallback($callback);
|
$pagination->setCallback($callback);
|
||||||
@@ -207,7 +207,7 @@ class ActiveQuery extends Component
|
|||||||
public function all(): Collection|array
|
public function all(): Collection|array
|
||||||
{
|
{
|
||||||
$data = $this->modelClass::getDb()->createCommand($this->queryBuilder())->all();
|
$data = $this->modelClass::getDb()->createCommand($this->queryBuilder())->all();
|
||||||
$collect = objectPool(Collection::class, [$this, $data, $this->modelClass]);
|
$collect = new Collection($this, $data, $this->modelClass);
|
||||||
if ($this->asArray) {
|
if ($this->asArray) {
|
||||||
return $collect->toArray();
|
return $collect->toArray();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -315,11 +315,6 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
*/
|
*/
|
||||||
public function toArray(): array
|
public function toArray(): array
|
||||||
{
|
{
|
||||||
$class = $this;
|
|
||||||
Coroutine::defer(function () use ($class) {
|
|
||||||
$object = Snowflake::app()->getObject();
|
|
||||||
$object->release(get_called_class(), $class);
|
|
||||||
});
|
|
||||||
$data = $this->_attributes;
|
$data = $this->_attributes;
|
||||||
foreach ($this->getAnnotation() as $key => $item) {
|
foreach ($this->getAnnotation() as $key => $item) {
|
||||||
if (!isset($data[$key])) {
|
if (!isset($data[$key])) {
|
||||||
@@ -327,7 +322,18 @@ class ActiveRecord extends BaseActiveRecord
|
|||||||
}
|
}
|
||||||
$data[$key] = call_user_func([$this, $item[1]], $data[$key]);
|
$data[$key] = call_user_func([$this, $item[1]], $data[$key]);
|
||||||
}
|
}
|
||||||
return array_merge($data, $this->runRelate());
|
$data = array_merge($data, $this->runRelate());
|
||||||
|
$this->recover();
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws ComponentException
|
||||||
|
*/
|
||||||
|
public function recover()
|
||||||
|
{
|
||||||
|
objectRecover(get_called_class(), $this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,15 +26,17 @@ class Dispatch
|
|||||||
|
|
||||||
protected mixed $request;
|
protected mixed $request;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $handler
|
* @param $handler
|
||||||
* @param $request
|
* @param $request
|
||||||
* @return static
|
* @return static
|
||||||
* @throws ComponentException
|
* @throws NotFindClassException
|
||||||
|
* @throws ReflectionException
|
||||||
*/
|
*/
|
||||||
public static function create($handler, $request): static
|
public static function create($handler, $request): static
|
||||||
{
|
{
|
||||||
$class = objectPool(get_called_class());
|
$class = new static();
|
||||||
$class->handler = $handler;
|
$class->handler = $handler;
|
||||||
$class->request = $request;
|
$class->request = $request;
|
||||||
if ($handler instanceof Closure) {
|
if ($handler instanceof Closure) {
|
||||||
|
|||||||
+4
-1
@@ -115,7 +115,10 @@ class Kafka extends \Snowflake\Process\Process
|
|||||||
if (!($class instanceof ConsumerInterface)) {
|
if (!($class instanceof ConsumerInterface)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$class->onHandler(objectPool(Struct::class, [$topic, $message]));
|
$class->onHandler($Struct = objectPool(Struct::class, [$topic, $message]));
|
||||||
|
|
||||||
|
objectRecover($namespace, $class);
|
||||||
|
objectRecover(Struct::class, $Struct);
|
||||||
} catch (Throwable $exception) {
|
} catch (Throwable $exception) {
|
||||||
$this->application->error($exception);
|
$this->application->error($exception);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,9 +38,7 @@ class ObjectPool extends \Snowflake\Abstracts\Pool
|
|||||||
if (is_object($config)) {
|
if (is_object($config)) {
|
||||||
return $config;
|
return $config;
|
||||||
}
|
}
|
||||||
$object = $this->getFromChannel($name = md5($config), [$config, $construct]);
|
return $this->getFromChannel($name = md5($config), [$config, $construct]);
|
||||||
listen(Event::EVENT_AFTER_REQUEST, [$this, 'release'], [$name, $object]);
|
|
||||||
return $object;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -233,6 +233,20 @@ if (!function_exists('objectPool')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!function_exists('objectRecover')) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $className
|
||||||
|
* @param $object
|
||||||
|
* @return mixed
|
||||||
|
* @throws ComponentException
|
||||||
|
*/
|
||||||
|
function objectRecover(mixed $className, $object): void
|
||||||
|
{
|
||||||
|
Snowflake::app()->getObject()->release($className, $object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('instance_load')) {
|
if (!function_exists('instance_load')) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user