From 7d2ca9ccb70d9093319eae321fd559c32ff6f256 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 12 Sep 2022 16:23:44 +0300 Subject: [PATCH 1/5] Added ability to render scheme using `class-string` instead of primitive `string` --- src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php index 466cd89..5c4e6be 100644 --- a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php +++ b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php @@ -24,6 +24,8 @@ public static function render($value, bool $wrapValue = true, int $indentLevel = return $value->toString(); case !$wrapValue || is_int($value): return (string)$value; + case is_string($value) && class_exists($value): + return "$value::class"; case is_string($value): return "'" . addslashes($value) . "'"; default: From 52c22ecf8a8ca714f00f5d230a714e25507f34e7 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 12 Sep 2022 16:28:54 +0300 Subject: [PATCH 2/5] Checked `datetime` type because \DateTime class can be found --- src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php index 5c4e6be..ac08fea 100644 --- a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php +++ b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php @@ -24,7 +24,7 @@ public static function render($value, bool $wrapValue = true, int $indentLevel = return $value->toString(); case !$wrapValue || is_int($value): return (string)$value; - case is_string($value) && class_exists($value): + case is_string($value) && class_exists($value) && strtolower($value) !== 'datetime': return "$value::class"; case is_string($value): return "'" . addslashes($value) . "'"; From e3efda98009df2f7614a2d37a68b3494e3686673 Mon Sep 17 00:00:00 2001 From: Aleksei Gagarin Date: Wed, 14 Dec 2022 15:40:34 +0300 Subject: [PATCH 3/5] Update src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php --- src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php index ac08fea..529a2f7 100644 --- a/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php +++ b/src/PhpFileRenderer/Exporter/Rendering/ValueRenderer.php @@ -24,7 +24,7 @@ public static function render($value, bool $wrapValue = true, int $indentLevel = return $value->toString(); case !$wrapValue || is_int($value): return (string)$value; - case is_string($value) && class_exists($value) && strtolower($value) !== 'datetime': + case \is_string($value) && \strpos($value, '\\') !== false && \class_exists($value): return "$value::class"; case is_string($value): return "'" . addslashes($value) . "'"; From c0d662fc0661727584c69556de255d9208e47da5 Mon Sep 17 00:00:00 2001 From: kastahov Date: Thu, 15 Dec 2022 14:51:29 +0200 Subject: [PATCH 4/5] Fix PhpSchemaRendererTest --- .../Renderer/Fixture/generated_schema_v2.stub.php | 12 ++++++------ tests/Schema/Renderer/PhpSchemaRendererTest.php | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/Schema/Renderer/Fixture/generated_schema_v2.stub.php b/tests/Schema/Renderer/Fixture/generated_schema_v2.stub.php index 5321ef4..c488978 100644 --- a/tests/Schema/Renderer/Fixture/generated_schema_v2.stub.php +++ b/tests/Schema/Renderer/Fixture/generated_schema_v2.stub.php @@ -7,7 +7,7 @@ return [ 'user' => [ - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'user', Schema::PRIMARY_KEY => 'id', @@ -40,10 +40,10 @@ ], ], ], - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\User', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\User::class, ], 'tag' => [ - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'tag', Schema::PRIMARY_KEY => ['id', 'name'], @@ -63,10 +63,10 @@ ], ], ], - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\Tag', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\Tag::class, ], 'tag_context' => [ - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'tag_user_map', Schema::COLUMNS => [], @@ -77,6 +77,6 @@ ], Schema::SCHEMA => [], Schema::RELATIONS => [], - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\TagContext', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\TagContext::class, ], ]; diff --git a/tests/Schema/Renderer/PhpSchemaRendererTest.php b/tests/Schema/Renderer/PhpSchemaRendererTest.php index 7872870..acce5e4 100644 --- a/tests/Schema/Renderer/PhpSchemaRendererTest.php +++ b/tests/Schema/Renderer/PhpSchemaRendererTest.php @@ -144,7 +144,7 @@ public function testRenderSchemaWithCustomPropertyToPhpCode(): void return [ 'Cycle\Schema\Renderer\Tests\Fixture\TagContext' => [ Schema::ROLE => 'tag_context', - Schema::MAPPER => 'Cycle\\\\ORM\\\\Mapper\\\\Mapper', + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'tag_user_map', Schema::COLUMNS => [], From bf3ba7ebb1968fc9d37249a732278256555e5a07 Mon Sep 17 00:00:00 2001 From: kastahov Date: Thu, 15 Dec 2022 14:57:11 +0200 Subject: [PATCH 5/5] Fixes --- .../Renderer/Fixture/generated_schema.stub.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/Schema/Renderer/Fixture/generated_schema.stub.php b/tests/Schema/Renderer/Fixture/generated_schema.stub.php index 208186f..082d838 100644 --- a/tests/Schema/Renderer/Fixture/generated_schema.stub.php +++ b/tests/Schema/Renderer/Fixture/generated_schema.stub.php @@ -7,8 +7,8 @@ return [ 'user' => [ - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\User', - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\User::class, + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'user', Schema::PRIMARY_KEY => 'id', @@ -43,8 +43,8 @@ Schema::SCHEMA => [], ], 'tag' => [ - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\Tag', - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\Tag::class, + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'tag', Schema::PRIMARY_KEY => ['id', 'name'], @@ -66,8 +66,8 @@ Schema::SCHEMA => [], ], 'tag_context' => [ - Schema::ENTITY => 'Cycle\\Schema\\Renderer\\Tests\\Fixture\\TagContext', - Schema::MAPPER => 'Cycle\\ORM\\Mapper\\Mapper', + Schema::ENTITY => Cycle\Schema\Renderer\Tests\Fixture\TagContext::class, + Schema::MAPPER => Cycle\ORM\Mapper\Mapper::class, Schema::DATABASE => 'default', Schema::TABLE => 'tag_user_map', Schema::COLUMNS => [],