From ced9eb26d06983b5d4f8b8d938db4bf0f9391836 Mon Sep 17 00:00:00 2001 From: Christopher Hertel Date: Sat, 27 Aug 2022 14:28:43 +0200 Subject: [PATCH] remove Tag::setName --- data/database.sqlite | Bin 274432 -> 274432 bytes phpstan-baseline.neon | 10 --------- src/DataFixtures/AppFixtures.php | 3 +-- src/Entity/Tag.php | 14 ++++++------- .../TagArrayToStringTransformer.php | 4 +--- .../TagArrayToStringTransformerTest.php | 19 ++++-------------- 6 files changed, 12 insertions(+), 38 deletions(-) diff --git a/data/database.sqlite b/data/database.sqlite index 1ff16420e4b8966b06a94318ee9f21c8182be98c..13f518ea69b48bce51739a002d04319c949788dc 100644 GIT binary patch delta 370 zcmZp8AkgqYV1hKG=tLQ3R#65$`w~kOjypr|AKb`?{wY?n*#$b@ob)u8_C2P z$;`>fH2Gb=H2YKj&-}mm-)t5rxW&)J6uJ3LJ*xm?5cr1W}9o>BN-WaCtvgM0+I@zen2wM z6U5%(smjdD#XI?)rwowy%hLczYI*5^#lpP;fxH!7Al2W%YksN&B;krD9bEKOjSrNE&;3k=;I5NxAO%V z+T#n-cgGhbqUq-+$;%a-nxc@Ir;wTsRGwI@kXn=o(bek*a>_kFkl9-QL3%6xdoc1g UANb#X;6Eb}Gi^WcpV`3x09K!QM*si- delta 146 zcmZp8AkgqYV1hKG@I)DBR$&G`#>kB+tK%78Oy)~i!N$9QcRKHc&4B@zcs5VSjbvhF zVdi9HpZqRgn*B5XFa9_DPd5t`+~Q|qXW9Iwo>gG-M}6VREE7~GYflJae7U)9LOxjP y{e1BN7AppJtL=ggj2!Hnh1_E~rsvORYM;z4#o7G-fBXOcj6lq^{r`VvMgstepEZa8 diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 6ffe8503f..e83bca956 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -185,16 +185,6 @@ parameters: count: 1 path: src/Entity/Post.php - - - message: "#^Method App\\\\Entity\\\\Tag\\:\\:__toString\\(\\) should return string but returns string\\|null\\.$#" - count: 1 - path: src/Entity/Tag.php - - - - message: "#^Method App\\\\Entity\\\\Tag\\:\\:jsonSerialize\\(\\) should return string but returns string\\|null\\.$#" - count: 1 - path: src/Entity/Tag.php - - message: "#^Method App\\\\Entity\\\\User\\:\\:__serialize\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index 517007014..37e6a82e1 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -56,8 +56,7 @@ private function loadUsers(ObjectManager $manager): void private function loadTags(ObjectManager $manager): void { foreach ($this->getTagData() as $name) { - $tag = new Tag(); - $tag->setName($name); + $tag = new Tag($name); $manager->persist($tag); $this->addReference('tag-'.$name, $tag); diff --git a/src/Entity/Tag.php b/src/Entity/Tag.php index eb9c18bdb..c6ba84f43 100644 --- a/src/Entity/Tag.php +++ b/src/Entity/Tag.php @@ -29,20 +29,18 @@ class Tag implements \JsonSerializable #[ORM\Column(type: 'integer')] private ?int $id = null; - #[ORM\Column(type: 'string', unique: true)] - private ?string $name = null; + public function __construct( + #[ORM\Column(type: 'string', unique: true)] + private readonly string $name, + ) { + } public function getId(): ?int { return $this->id; } - public function setName(string $name): void - { - $this->name = $name; - } - - public function getName(): ?string + public function getName(): string { return $this->name; } diff --git a/src/Form/DataTransformer/TagArrayToStringTransformer.php b/src/Form/DataTransformer/TagArrayToStringTransformer.php index 11f3aa8db..fba08c42d 100644 --- a/src/Form/DataTransformer/TagArrayToStringTransformer.php +++ b/src/Form/DataTransformer/TagArrayToStringTransformer.php @@ -62,9 +62,7 @@ public function reverseTransform($string): array ]); $newNames = array_diff($names, $tags); foreach ($newNames as $name) { - $tag = new Tag(); - $tag->setName($name); - $tags[] = $tag; + $tags[] = new Tag($name); // There's no need to persist these new tags because Doctrine does that automatically // thanks to the cascade={"persist"} option in the App\Entity\Post::$tags property. diff --git a/tests/Form/DataTransformer/TagArrayToStringTransformerTest.php b/tests/Form/DataTransformer/TagArrayToStringTransformerTest.php index f826dd4fb..abbb4dde2 100644 --- a/tests/Form/DataTransformer/TagArrayToStringTransformerTest.php +++ b/tests/Form/DataTransformer/TagArrayToStringTransformerTest.php @@ -72,8 +72,8 @@ public function testDuplicateNames(): void public function testUsesAlreadyDefinedTags(): void { $persistedTags = [ - $this->createTag('Hello'), - $this->createTag('World'), + new Tag('Hello'), + new Tag('World'), ]; $tags = $this->getMockedTransformer($persistedTags)->reverseTransform('Hello, World, How, Are, You'); @@ -89,8 +89,8 @@ public function testUsesAlreadyDefinedTags(): void public function testTransform(): void { $persistedTags = [ - $this->createTag('Hello'), - $this->createTag('World'), + new Tag('Hello'), + new Tag('World'), ]; $transformed = $this->getMockedTransformer()->transform($persistedTags); @@ -114,15 +114,4 @@ private function getMockedTransformer(array $findByReturnValues = []): TagArrayT return new TagArrayToStringTransformer($tagRepository); } - - /** - * This helper method creates a Tag instance for the given tag name. - */ - private function createTag(string $name): Tag - { - $tag = new Tag(); - $tag->setName($name); - - return $tag; - } }