- Worked on SQLite adapter mostly
This commit is contained in:
		
							parent
							
								
									8e0dce3e71
								
							
						
					
					
						commit
						07ae8faaac
					
				| @ -163,6 +163,14 @@ class SQLite implements AdapterInterface, MigrateInterface, SqlAdapterInterface | ||||
|         $pdo->sqliteCreateFunction('length', fn($string) => strlen($string), 1); | ||||
|         $pdo->sqliteCreateFunction('lcase', fn($string) => strtolower($string), 1); | ||||
|         $pdo->sqliteCreateFunction('ucase', fn($string) => strtoupper($string), 1); | ||||
|         $pdo->sqliteCreateFunction('md5', fn($string) => md5($string), 1); | ||||
|         $pdo->sqliteCreateFunction('sha1', fn($string) => sha1($string), 1); | ||||
|         $pdo->sqliteCreateFunction('sha256', fn($string) => hash('sha256', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('sha512', fn($string) => hash('sha512', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('whirlpool', fn($string) => hash('whirlpool', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('murmur3a', fn($string) => hash('murmur3a', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('murmur3c', fn($string) => hash('murmur3c', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('murmur3f', fn($string) => hash('murmur3f', $string), 1); | ||||
|         $pdo->sqliteCreateFunction('left', fn($string, $length) => substr($string, 0, $length), 2); | ||||
|         $pdo->sqliteCreateFunction('right', fn($string, $length) => substr($string, -$length), 2); | ||||
|         $pdo->sqliteCreateFunction('strcmp', fn($s1, $s2) => strcmp($s1, $s2), 2); | ||||
|  | ||||
| @ -134,7 +134,7 @@ trait SqlAdapterTrait | ||||
|             case is_object($value): | ||||
|                 return Ulmus::convertObject($value); | ||||
| 
 | ||||
|                 case is_array($value): | ||||
|             case is_array($value): | ||||
|                 return json_encode($value); | ||||
| 
 | ||||
|             case is_bool($value): | ||||
|  | ||||
| @ -360,7 +360,7 @@ class EntityCollection extends \ArrayObject implements \JsonSerializable { | ||||
| 
 | ||||
|     public function jsonSerialize(): mixed | ||||
|     { | ||||
|         return $this->toArray(); | ||||
|         return $this->toArray(true); | ||||
|     } | ||||
| 
 | ||||
|     public function append($value) : void | ||||
|  | ||||
| @ -141,7 +141,7 @@ trait EntityTrait { | ||||
|         return $this->entityFillFromDataset($dataset); | ||||
|     } | ||||
| 
 | ||||
|     public function entityGetDataset(bool $includeRelations = false, bool $returnSource = false) : array | ||||
|     public function entityGetDataset(bool $includeRelations = false, bool $returnSource = false, bool $rewriteValue = true) : array | ||||
|     { | ||||
|         if ( $returnSource ) { | ||||
|             return $this->entityLoadedDataset; | ||||
| @ -155,7 +155,10 @@ trait EntityTrait { | ||||
|             $annotation = $entityResolver->searchFieldAnnotation($key, [ Attribute\Property\Field::class, Field::class ]); | ||||
| 
 | ||||
|             if ( isset($this->$key) ) { | ||||
|                 $dataset[$annotation->name ?? $key] = static::repository()->adapter->adapter()->writableValue($this->$key); | ||||
|                 $dataset[$annotation->name ?? $key] = $rewriteValue? | ||||
|                     static::repository()->adapter->adapter()->writableValue($this->$key) | ||||
|                 : | ||||
|                     $this->$key; | ||||
|             } | ||||
|             elseif ( $field['nullable'] ) { | ||||
|                 $dataset[$annotation->name ?? $key] = null; | ||||
| @ -165,7 +168,7 @@ trait EntityTrait { | ||||
|         # @TODO Must fix recursive bug !
 | ||||
|         if ($includeRelations) { | ||||
|             foreach($entityResolver->properties as $name => $field){ | ||||
|                 $relation =  $entityResolver->searchFieldAnnotation($key, [ Attribute\Property\Relation::class. Relation::class ] ); | ||||
|                 $relation = $entityResolver->searchFieldAnnotation($name, [ Attribute\Property\Relation::class, Relation::class ] ); | ||||
| 
 | ||||
|                 if ( $relation && isset($this->$name) && ($relation->entity ?? $relation->bridge) !== static::class ) { | ||||
|                     if ( null !== $value = $this->$name ?? null ) { | ||||
| @ -192,7 +195,7 @@ trait EntityTrait { | ||||
|     #[Ignore]
 | ||||
|     public function toArray($includeRelations = false, array $filterFields = null) : array | ||||
|     { | ||||
|         $dataset = $this->entityGetDataset($includeRelations); | ||||
|         $dataset = $this->entityGetDataset($includeRelations, false, false); | ||||
| 
 | ||||
|         return $filterFields ? array_intersect_key($dataset, array_flip($filterFields)) : $dataset; | ||||
|     } | ||||
| @ -275,7 +278,7 @@ trait EntityTrait { | ||||
|     #[Ignore]
 | ||||
|     public function jsonSerialize() : mixed | ||||
|     { | ||||
|         return $this->entityGetDataset(); | ||||
|         return $this->entityGetDataset(true, false, false); | ||||
|     } | ||||
| 
 | ||||
|     #[Ignore]
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user