Skip to content

Commit 011852f

Browse files
authored
Merge pull request #21 from fykosak/dev-mapper
Dev mapper
2 parents 6a05784 + b6883c6 commit 011852f

9 files changed

Lines changed: 157 additions & 55 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"require": {
77
"php": ">=8.3",
88
"nette/di": "v3.*",
9-
"nette/database": "v3.*",
9+
"nette/database": "^v3.2.7",
1010
"ext-pdo": "*",
1111
"ext-gettext": "*"
1212
},

composer.lock

Lines changed: 61 additions & 49 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Model/Model.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Fykosak\NetteORM\ModelRelationsParser;
99
use Fykosak\NetteORM\Selection\TypedGroupedSelection;
1010
use Fykosak\NetteORM\Selection\TypedSelection;
11+
use Fykosak\NetteORM\Types\WGS84Point;
1112
use Nette\Database\Table\ActiveRow;
1213
use Nette\MemberAccessException;
1314

@@ -54,6 +55,8 @@ public function &__get(string $key): mixed //phpcs:ignore
5455
}
5556
} elseif ($returnType->isSubclassOf(\BackedEnum::class)) {
5657
$value = $returnType->getMethod('tryFrom')->invoke($returnType, $value);
58+
} elseif ($returnType->name === WGS84Point::class) {
59+
$value = $returnType->getMethod('fromBytes')->invoke($returnType, $value);
5760
}
5861
}
5962
}

src/ModelRelationsParser.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class ModelRelationsParser
1313
{
1414
/**
1515
* @phpstan-param \ReflectionClass<Model> $modelReflection
16-
* @phpstan-return array<string,array{type:Type,reflection:\ReflectionClass<Model>|null,property:string}>
16+
* @phpstan-return array<string,array{type:Type,reflection:\ReflectionClass<mixed>|null,property:string}>
1717
* @throws \ReflectionException
1818
*/
1919
public static function parseModelDoc(\ReflectionClass $modelReflection): ?array

src/Selection/TypedGroupedSelection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Nette\Database\Table\Selection;
1414

1515
/**
16-
* @template TModel of Model
16+
* @phpstan-template-covariant TModel of Model
1717
*/
1818
class TypedGroupedSelection extends GroupedSelection
1919
{

src/Selection/TypedSelection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use Nette\Database\Table\Selection;
1313

1414
/**
15-
* @template TModel of Model
15+
* @phpstan-template-covariant TModel of Model
1616
* @phpstan-extends Selection<TModel>
1717
* @phpstan-ignore-next-line
1818
*/

src/Selection/TypedSelectionsTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Fykosak\NetteORM\Model\Model;
99

1010
/**
11-
* @template TModel of Model
11+
* @phpstan-template-covariant TModel of Model
1212
*/
1313
trait TypedSelectionsTrait
1414
{

src/Service/Service.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Fykosak\NetteORM\Mapper;
88
use Fykosak\NetteORM\Model\Model;
99
use Fykosak\NetteORM\Selection\TypedSelection;
10+
use Fykosak\NetteORM\Types\WGS84Point;
1011
use Nette\Database\Explorer;
1112

1213
/**
@@ -104,7 +105,9 @@ protected function filterData(array $data): array
104105
$name = $column['name'];
105106
if (array_key_exists($name, $data)) {
106107
if ($data[$name] instanceof \BackedEnum) {
107-
$result[$name] = $data[$name]->value;
108+
$result[$name] = $data[$name]->value;
109+
} elseif ($data[$name] instanceof WGS84Point) {
110+
$result[$name] = $data[$name]->toString();
108111
} else {
109112
$result[$name] = $data[$name];
110113
}

0 commit comments

Comments
 (0)