Skip to content

Commit 5c2b797

Browse files
roquieroxblnfkmeekstellar
authored
Render php-schema class-string values as class names instead of string scalars (#11)
Co-authored-by: Aleksei Gagarin <[email protected]> Co-authored-by: kastahov <[email protected]>
1 parent a9995e0 commit 5c2b797

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public static function render($value, bool $wrapValue = true, int $indentLevel =
2424
return $value->toString();
2525
case !$wrapValue || is_int($value):
2626
return (string)$value;
27+
case \is_string($value) && \strpos($value, '\\') !== false && \class_exists($value):
28+
return "$value::class";
2729
case is_string($value):
2830
return "'" . addslashes($value) . "'";
2931
default:

tests/Schema/Renderer/Fixture/generated_schema.stub.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
return [
99
'user' => [
10-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\User',
11-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
10+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\User::class,
11+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
1212
Schema::DATABASE => 'default',
1313
Schema::TABLE => 'user',
1414
Schema::PRIMARY_KEY => 'id',
@@ -43,8 +43,8 @@
4343
Schema::SCHEMA => [],
4444
],
4545
'tag' => [
46-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\Tag',
47-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
46+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\Tag::class,
47+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
4848
Schema::DATABASE => 'default',
4949
Schema::TABLE => 'tag',
5050
Schema::PRIMARY_KEY => ['id', 'name'],
@@ -66,8 +66,8 @@
6666
Schema::SCHEMA => [],
6767
],
6868
'tag_context' => [
69-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\TagContext',
70-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
69+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\TagContext::class,
70+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
7171
Schema::DATABASE => 'default',
7272
Schema::TABLE => 'tag_user_map',
7373
Schema::COLUMNS => [],

tests/Schema/Renderer/Fixture/generated_schema_v2.stub.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
return [
99
'user' => [
10-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
10+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
1111
Schema::DATABASE => 'default',
1212
Schema::TABLE => 'user',
1313
Schema::PRIMARY_KEY => 'id',
@@ -40,10 +40,10 @@
4040
],
4141
],
4242
],
43-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\User',
43+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\User::class,
4444
],
4545
'tag' => [
46-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
46+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
4747
Schema::DATABASE => 'default',
4848
Schema::TABLE => 'tag',
4949
Schema::PRIMARY_KEY => ['id', 'name'],
@@ -63,10 +63,10 @@
6363
],
6464
],
6565
],
66-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\Tag',
66+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\Tag::class,
6767
],
6868
'tag_context' => [
69-
Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper',
69+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
7070
Schema::DATABASE => 'default',
7171
Schema::TABLE => 'tag_user_map',
7272
Schema::COLUMNS => [],
@@ -77,6 +77,6 @@
7777
],
7878
Schema::SCHEMA => [],
7979
Schema::RELATIONS => [],
80-
Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\TagContext',
80+
Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\TagContext::class,
8181
],
8282
];

tests/Schema/Renderer/PhpSchemaRendererTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public function testRenderSchemaWithCustomPropertyToPhpCode(): void
144144
return [
145145
'Cycle\Schema\Renderer\Tests\Fixture\TagContext' => [
146146
Schema::ROLE => 'tag_context',
147-
Schema::MAPPER => 'Cycle\\\\ORM\\\\Mapper\\\\Mapper',
147+
Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class,
148148
Schema::DATABASE => 'default',
149149
Schema::TABLE => 'tag_user_map',
150150
Schema::COLUMNS => [],

0 commit comments

Comments
 (0)