- Mostly bug fixes done on this code push
This commit is contained in:
parent
7de0ecb028
commit
83f673b37f
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Ulmus\Adapter;
|
namespace Ulmus\Adapter;
|
||||||
|
|
||||||
use Ulmus\{ConnectionAdapter, Entity\InformationSchema\Table, Migration\FieldDefinition, Repository, QueryBuilder\Sql\MysqlQueryBuilder};
|
use Ulmus\{ConnectionAdapter, Entity\InformationSchema\Table, Entity, Migration\FieldDefinition, Repository, QueryBuilder\Sql\MysqlQueryBuilder};
|
||||||
|
|
||||||
trait DefaultAdapterTrait
|
trait DefaultAdapterTrait
|
||||||
{
|
{
|
||||||
|
|
|
@ -207,6 +207,7 @@ class MsSQL implements AdapterInterface, MigrateInterface, SqlAdapterInterface {
|
||||||
public function escapeIdentifier(string $segment, int $type) : string
|
public function escapeIdentifier(string $segment, int $type) : string
|
||||||
{
|
{
|
||||||
switch($type) {
|
switch($type) {
|
||||||
|
default:
|
||||||
case static::IDENTIFIER_SCHEMA:
|
case static::IDENTIFIER_SCHEMA:
|
||||||
case static::IDENTIFIER_DATABASE:
|
case static::IDENTIFIER_DATABASE:
|
||||||
case static::IDENTIFIER_TABLE:
|
case static::IDENTIFIER_TABLE:
|
||||||
|
|
|
@ -76,7 +76,7 @@ trait EntityTrait {
|
||||||
elseif ( EntityField::isScalarType($field['type']) ) {
|
elseif ( EntityField::isScalarType($field['type']) ) {
|
||||||
|
|
||||||
if ( $field['type'] === 'string' ) {
|
if ( $field['type'] === 'string' ) {
|
||||||
$annotation = $entityResolver->searchFieldAnnotation($field['name'], [ Attribute\Property\Field::class, Field::class ] );
|
$annotation = $entityResolver->searchFieldAnnotation($field['name'], [ Attribute\Property\Field::class, ] );
|
||||||
|
|
||||||
if ( $annotation->length ?? null ) {
|
if ( $annotation->length ?? null ) {
|
||||||
$value = mb_substr($value, 0, $annotation->length);
|
$value = mb_substr($value, 0, $annotation->length);
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Ulmus\Event\Repository;
|
||||||
|
|
||||||
|
use Ulmus\EntityCollection;
|
||||||
|
|
||||||
|
interface CollectionFromQueryItemInterface {
|
||||||
|
public function execute(array &$data) : array;
|
||||||
|
}
|
|
@ -16,7 +16,7 @@ trait EventTrait
|
||||||
return array_filter($this->eventList, fn($ev) => $ev instanceof $type);
|
return array_filter($this->eventList, fn($ev) => $ev instanceof $type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function eventExecute(string $type, ...$arguments) : void
|
public function eventExecute(string $type, &...$arguments) : void
|
||||||
{
|
{
|
||||||
foreach($this->eventFromType($type) as $event) {
|
foreach($this->eventFromType($type) as $event) {
|
||||||
call_user_func_array([ $event, 'execute'], $arguments);
|
call_user_func_array([ $event, 'execute'], $arguments);
|
||||||
|
|
|
@ -13,9 +13,10 @@ use Ulmus\Annotation\Property\{Field,
|
||||||
WithJoin,
|
WithJoin,
|
||||||
Relation\Ignore as RelationIgnore};
|
Relation\Ignore as RelationIgnore};
|
||||||
use Ulmus\Common\EntityResolver;
|
use Ulmus\Common\EntityResolver;
|
||||||
|
use Ulmus\Repository\RepositoryInterface;
|
||||||
use Ulmus\Repository\WithOptionEnum;
|
use Ulmus\Repository\WithOptionEnum;
|
||||||
|
|
||||||
class Repository
|
class Repository implements RepositoryInterface
|
||||||
{
|
{
|
||||||
use EventTrait, Repository\ConditionTrait, Repository\EscapeTrait;
|
use EventTrait, Repository\ConditionTrait, Repository\EscapeTrait;
|
||||||
|
|
||||||
|
@ -869,6 +870,8 @@ class Repository
|
||||||
$this->finalizeQuery();
|
$this->finalizeQuery();
|
||||||
|
|
||||||
foreach(Ulmus::iterateQueryBuilder($this->queryBuilder, $this->adapter) as $entityData) {
|
foreach(Ulmus::iterateQueryBuilder($this->queryBuilder, $this->adapter) as $entityData) {
|
||||||
|
$this->eventExecute(\Ulmus\Event\Repository\CollectionFromQueryItemInterface::class, $entityData);
|
||||||
|
|
||||||
$entity = $this->instanciateEntity($entityClass);
|
$entity = $this->instanciateEntity($entityClass);
|
||||||
$entity->loadedFromAdapter = $this->adapter->name;
|
$entity->loadedFromAdapter = $this->adapter->name;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Ulmus\Repository;
|
||||||
|
|
||||||
|
interface RepositoryInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -82,7 +82,7 @@ abstract class Ulmus
|
||||||
|
|
||||||
public static function runInsertQuery(QueryBuilder\QueryBuilderInterface $queryBuilder, ? ConnectionAdapter $adapter = null)
|
public static function runInsertQuery(QueryBuilder\QueryBuilderInterface $queryBuilder, ? ConnectionAdapter $adapter = null)
|
||||||
{
|
{
|
||||||
$return = static::connector($adapter)->runInsertQuery($queryBuilder->render(),$queryBuilder->values ?? []);
|
$return = static::connector($adapter)->runInsertQuery($queryBuilder->render(), $queryBuilder->values ?? []);
|
||||||
$queryBuilder->reset();
|
$queryBuilder->reset();
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
|
|
Loading…
Reference in New Issue