This commit is contained in:
as2252258@163.com
2021-04-23 03:07:29 +08:00
parent f9210d9971
commit 8b57f44f7e
5 changed files with 3 additions and 79 deletions
-15
View File
@@ -310,24 +310,9 @@ class ActiveRecord extends BaseActiveRecord
$data[$key] = $this->runAnnotation($key, $data[$key] ?? null);
}
$data = array_merge($data, $this->runRelate());
$this->recover();
return $data;
}
/**
* @throws Exception
*/
public function recover()
{
$this->clean();
/** @var Channel $channel */
$channel = Snowflake::app()->get('channel');
$channel->push($this, get_called_class());
}
/**
* @return array
* @throws Exception
+1 -6
View File
@@ -120,12 +120,7 @@ abstract class AbstractCollection extends Component implements \IteratorAggregat
if (is_object($model)) {
return $model;
}
/** @var Channel $channel */
$channel = Snowflake::app()->get('channel');
return $channel->pop($model, function () use ($model) {
return new $model();
});
return new $model();
}
+1 -7
View File
@@ -1029,13 +1029,7 @@ abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess
*/
public static function populate(array $data): static
{
$className = get_called_class();
/** @var Channel $channel */
$channel = Snowflake::app()->get('channel');
$model = $channel->pop($className, function () use ($className) {
return new $className();
});
$model = new static();
$model->_attributes = $data;
$model->setIsCreate(false);
$model->refresh();
+1 -6
View File
@@ -62,12 +62,7 @@ class CollectionIterator extends \ArrayIterator
if (is_object($model)) {
$model = get_class($model);
}
/** @var Channel $channel */
$channel = Snowflake::app()->get('channel');
$model = $channel->pop($model, function () use ($model) {
return new $model();
});
$model = new $model();
return $model->setAttributes($current);
}
-45
View File
@@ -1,45 +0,0 @@
<?php
namespace Database;
use JetBrains\PhpStorm\Pure;
use Snowflake\IAspect;
/**
* Class InjectProperty
* @package Database
*/
class InjectProperty implements IAspect
{
private string $className = '';
private string $methodName = '';
/**
* InjectProperty constructor.
* @param array $handler
*/
public function __construct(public array $handler)
{
}
/**
* @return mixed
*/
public function invoke(): mixed
{
$data = call_user_func($this->handler, func_get_args());
$this->handler[0]->createAnnotation();
echo 'inject property.' . PHP_EOL;
return $data;
}
}