Skip to content

Commit 7832661

Browse files
committed
wip
1 parent 3f59a5b commit 7832661

File tree

18 files changed

+50
-45
lines changed

18 files changed

+50
-45
lines changed

packages/database/src/BelongsTo.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Tempest\Database\QueryStatements\JoinStatement;
1111
use Tempest\Reflection\PropertyReflector;
1212
use Tempest\Support\Arr\ImmutableArray;
13+
1314
use function Tempest\Support\str;
1415

1516
#[Attribute(Attribute::TARGET_PROPERTY)]
@@ -64,10 +65,7 @@ private function getRelationJoin(ModelInspector $relationModel): string
6465
$relationJoin = $this->relationJoin;
6566

6667
if ($relationJoin && ! strpos($relationJoin, '.')) {
67-
$relationJoin = sprintf('%s.%s',
68-
$relationModel->getTableName(),
69-
$relationJoin,
70-
);
68+
$relationJoin = sprintf('%s.%s', $relationModel->getTableName(), $relationJoin);
7169
}
7270

7371
if ($relationJoin) {
@@ -86,10 +84,7 @@ private function getOwnerJoin(ModelInspector $ownerModel): string
8684
$ownerJoin = $this->ownerJoin;
8785

8886
if ($ownerJoin && ! strpos($ownerJoin, '.')) {
89-
$ownerJoin = sprintf('%s.%s',
90-
$ownerModel->getTableName(),
91-
$ownerJoin,
92-
);
87+
$ownerJoin = sprintf('%s.%s', $ownerModel->getTableName(), $ownerJoin);
9388
}
9489

9590
if ($ownerJoin) {

packages/database/src/Builder/ModelInspector.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ final class ModelInspector
2828

2929
public function __construct(
3030
private object|string $model,
31-
)
32-
{
31+
) {
3332
if ($this->model instanceof ClassReflector) {
3433
$this->modelClass = $this->model;
3534
} else {
@@ -215,11 +214,9 @@ public function getSelectFields(): ImmutableArray
215214

216215
public function getRelation(string|PropertyReflector $name): ?Relation
217216
{
218-
$name = $name instanceof PropertyReflector ? $name->getName() : $name;
217+
$name = ($name instanceof PropertyReflector) ? $name->getName() : $name;
219218

220-
return $this->getBelongsTo($name)
221-
?? $this->getHasOne($name)
222-
?? $this->getHasMany($name);
219+
return $this->getBelongsTo($name) ?? $this->getHasOne($name) ?? $this->getHasMany($name);
223220
}
224221

225222
public function getEagerRelations(): array

packages/database/src/Builder/QueryBuilders/SelectQueryBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ public function build(mixed ...$bindings): Query
228228

229229
foreach ($this->getIncludedRelations() as $relation) {
230230
$this->select->fields = $this->select->fields->append(
231-
...$relation->getSelectFields()
231+
...$relation->getSelectFields(),
232232
);
233233

234234
$this->select->join[] = $relation->getJoinStatement();

packages/database/src/HasMany.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Tempest\Database\QueryStatements\JoinStatement;
1111
use Tempest\Reflection\PropertyReflector;
1212
use Tempest\Support\Arr\ImmutableArray;
13+
1314
use function Tempest\Support\str;
1415

1516
#[Attribute(Attribute::TARGET_PROPERTY)]

packages/database/src/HasOne.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Tempest\Database\QueryStatements\JoinStatement;
1111
use Tempest\Reflection\PropertyReflector;
1212
use Tempest\Support\Arr\ImmutableArray;
13+
1314
use function Tempest\Support\str;
1415

1516
#[Attribute(Attribute::TARGET_PROPERTY)]

packages/database/src/Mappers/SelectModelMapper.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Tempest\Database\Builder\ModelInspector;
66
use Tempest\Discovery\SkipDiscovery;
77
use Tempest\Mapper\Mapper;
8+
89
use function Tempest\Database\model;
910
use function Tempest\map;
1011
use function Tempest\Support\arr;
@@ -77,4 +78,4 @@ private function normalizeFields(ModelInspector $model, array $rows): array
7778

7879
return $data;
7980
}
80-
}
81+
}

packages/database/src/QueryStatements/FieldStatement.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ public function compile(DatabaseDialect $dialect): string
3737

3838
$field = arr(explode('.', $field))
3939
->map(fn (string $part) => trim($part, '` '))
40-
->map(fn (string $part) => match ($dialect) {
41-
DatabaseDialect::SQLITE => $part,
42-
default => sprintf('`%s`', $part),
43-
})
40+
->map(
41+
fn (string $part) => match ($dialect) {
42+
DatabaseDialect::SQLITE => $part,
43+
default => sprintf('`%s`', $part),
44+
},
45+
)
4446
->implode('.');
4547

4648
if ($alias === null) {

packages/database/src/QueryStatements/SelectStatement.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function compile(DatabaseDialect $dialect): string
3030
? '*'
3131
: $this->fields
3232
->map(function (string|Stringable|FieldStatement $field) use ($dialect) {
33-
if (! $field instanceof FieldStatement) {
33+
if (! ($field instanceof FieldStatement)) {
3434
$field = new FieldStatement($field);
3535
}
3636

@@ -92,9 +92,9 @@ public function compile(DatabaseDialect $dialect): string
9292
/* TODO: this should be improved.
9393
* More specifically, \Tempest\Database\Builder\FieldDefinition should be aware of the dialect,
9494
* or the whole ORM should be refactored to use \Tempest\Database\QueryStatements\FieldStatement*/
95-
// if ($dialect === DatabaseDialect::SQLITE) {
96-
// $compiled = $compiled->replace('`', '');
97-
// }
95+
// if ($dialect === DatabaseDialect::SQLITE) {
96+
// $compiled = $compiled->replace('`', '');
97+
// }
9898

9999
return $compiled;
100100
}

packages/database/src/Relation.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ interface Relation extends PropertyAttribute
1111
public function getSelectFields(): ImmutableArray;
1212

1313
public function getJoinStatement(): JoinStatement;
14-
}
14+
}

packages/database/tests/QueryStatements/FieldStatementTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,16 @@ public function test_with_alias(): void
6969
{
7070
$this->assertSame(
7171
'authors.name AS `authors.name`',
72-
new FieldStatement('authors.name')->withAlias()->compile(DatabaseDialect::SQLITE),
72+
new FieldStatement('authors.name')
73+
->withAlias()
74+
->compile(DatabaseDialect::SQLITE),
7375
);
7476

7577
$this->assertSame(
7678
'`authors`.`name` AS `authors.name`',
77-
new FieldStatement('`authors`.`name`')->withAlias()->compile(DatabaseDialect::MYSQL),
79+
new FieldStatement('`authors`.`name`')
80+
->withAlias()
81+
->compile(DatabaseDialect::MYSQL),
7882
);
7983
}
8084
}

0 commit comments

Comments
 (0)