Skip to content

Commit 321a712

Browse files
committed
Move validation to xml too
1 parent e5d1756 commit 321a712

File tree

4 files changed

+83
-85
lines changed

4 files changed

+83
-85
lines changed

Entity/Category.php

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,60 +15,33 @@
1515

1616
use Doctrine\Common\Collections\ArrayCollection;
1717
use Doctrine\ORM\Event\PreRemoveEventArgs;
18-
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
1918
use Symfony\Component\String\Slugger\AsciiSlugger;
20-
use Symfony\Component\Validator\Constraints as Assert;
2119

22-
/**
23-
* @UniqueEntity("slug")
24-
*/
25-
#[UniqueEntity('slug')]
2620
abstract class Category
2721
{
2822
/**
2923
* @var string
30-
*
31-
* @Assert\Type("string")
32-
*
33-
* @Assert\NotBlank()
3424
*/
35-
#[Assert\Type('string')]
36-
#[Assert\NotBlank]
3725
protected $name;
3826

3927
/**
4028
* @var string
41-
*
42-
* @Assert\Type("string")
43-
*
44-
* @Assert\NotBlank()
4529
*/
46-
#[Assert\Type('string')]
47-
#[Assert\NotBlank]
4830
protected $slug;
4931

5032
/**
5133
* @var string
52-
*
53-
* @Assert\Type("string")
5434
*/
55-
#[Assert\Type('string')]
5635
protected $description;
5736

5837
/**
5938
* @var bool
60-
*
61-
* @Assert\Type("bool")
6239
*/
63-
#[Assert\Type('bool')]
6440
protected $enabled = false;
6541

6642
/**
6743
* @var Category
68-
*
69-
* @Assert\Type(Category::class)
7044
*/
71-
#[Assert\Type(self::class)]
7245
protected $parent;
7346

7447
/**

Entity/Page.php

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -15,140 +15,83 @@
1515

1616
use Doctrine\Common\Collections\ArrayCollection;
1717
use Doctrine\ORM\Event\PreRemoveEventArgs;
18-
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
1918
use Symfony\Component\String\Slugger\AsciiSlugger;
20-
use Symfony\Component\Validator\Constraints as Assert;
2119

22-
/**
23-
* @UniqueEntity("slug")
24-
*/
25-
#[UniqueEntity('slug')]
2620
abstract class Page
2721
{
2822
/**
2923
* @var string
30-
*
31-
* @Assert\Type("string")
32-
*
33-
* @Assert\NotBlank()
3424
*/
35-
#[Assert\Type('string')]
36-
#[Assert\NotBlank]
3725
protected $title;
3826

3927
/**
4028
* @var string
41-
*
42-
* @Assert\Type("string")
43-
*
44-
* @Assert\NotBlank()
4529
*/
46-
#[Assert\Type('string')]
47-
#[Assert\NotBlank]
4830
protected $slug;
4931

5032
/**
5133
* @var string
52-
*
53-
* @Assert\Type("string")
5434
*/
55-
#[Assert\Type('string')]
5635
protected $content;
5736

5837
/**
5938
* @var string
60-
*
61-
* @Assert\Type("string")
6239
*/
63-
#[Assert\Type('string')]
6440
protected $metaDescription;
6541

6642
/**
6743
* @var string
68-
*
69-
* @Assert\Type("string")
7044
*/
71-
#[Assert\Type('string')]
7245
protected $metaTitle;
7346

7447
/**
7548
* @var string
76-
*
77-
* @Assert\Type("string")
7849
*/
79-
#[Assert\Type('string')]
8050
protected $metaKeywords;
8151

8252
/**
8353
* @var null|Category
84-
*
85-
* @Assert\Type(Category::class)
8654
*/
87-
#[Assert\Type(Category::class)]
8855
protected $category;
8956

9057
/**
9158
* @var string
92-
*
93-
* @Assert\Type("string")
9459
*/
95-
#[Assert\Type('string')]
9660
protected $css;
9761

9862
/**
9963
* @var string
100-
*
101-
* @Assert\Type("string")
10264
*/
103-
#[Assert\Type('string')]
10465
protected $js;
10566

10667
/**
10768
* @var \DateTimeImmutable
108-
*
109-
* @Assert\Type(\DateTimeImmutable::class)
11069
*/
111-
#[Assert\Type(\DateTimeImmutable::class)]
11270
protected $createdAt;
11371

11472
/**
11573
* @var bool
116-
*
117-
* @Assert\Type("bool")
11874
*/
119-
#[Assert\Type('bool')]
12075
protected $enabled = false;
12176

12277
/**
12378
* @var bool
124-
*
125-
* @Assert\Type("bool")
12679
*/
127-
#[Assert\Type('bool')]
12880
protected $homepage = false;
12981

13082
/**
13183
* @var string
132-
*
133-
* @Assert\Type("string")
13484
*/
135-
#[Assert\Type('string')]
13685
protected $host;
13786

13887
/**
13988
* @var string
140-
*
141-
* @Assert\Type("string")
14289
*/
143-
#[Assert\Type('string')]
14490
protected $locale;
14591

14692
/**
14793
* @var null|Page
148-
*
149-
* @Assert\Type(Page::class)
15094
*/
151-
#[Assert\Type(self::class)]
15295
protected $parent;
15396

15497
/**
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
5+
https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
6+
7+
<class name="Orbitale\Bundle\CmsBundle\Entity\Category">
8+
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
9+
<option name="fields">slug</option>
10+
</constraint>
11+
<property name="name">
12+
<constraint name="NotBlank"/>
13+
<constraint name="Type"><option name="type">string</option></constraint>
14+
</property>
15+
<property name="slug">
16+
<constraint name="NotBlank"/>
17+
<constraint name="Type"><option name="type">string</option></constraint>
18+
</property>
19+
<property name="description">
20+
<constraint name="Type"><option name="type">string</option></constraint>
21+
</property>
22+
<property name="enabled">
23+
<constraint name="Type"><option name="type">bool</option></constraint>
24+
</property>
25+
<property name="parent">
26+
<constraint name="Type"><option name="type">Orbitale\Bundle\CmsBundle\Entity\Category</option></constraint>
27+
</property>
28+
</class>
29+
30+
<class name="Orbitale\Bundle\CmsBundle\Entity\Page">
31+
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
32+
<option name="fields">slug</option>
33+
</constraint>
34+
<property name="title">
35+
<constraint name="NotBlank"/>
36+
<constraint name="Type"><option name="type">string</option></constraint>
37+
</property>
38+
<property name="slug">
39+
<constraint name="NotBlank"/>
40+
<constraint name="Type"><option name="type">string</option></constraint>
41+
</property>
42+
<property name="content">
43+
<constraint name="Type"><option name="type">string</option></constraint>
44+
</property>
45+
<property name="metaDescription">
46+
<constraint name="Type"><option name="type">string</option></constraint>
47+
</property>
48+
<property name="metaTitle">
49+
<constraint name="Type"><option name="type">string</option></constraint>
50+
</property>
51+
<property name="metaKeywords">
52+
<constraint name="Type"><option name="type">string</option></constraint>
53+
</property>
54+
<property name="css">
55+
<constraint name="Type"><option name="type">string</option></constraint>
56+
</property>
57+
<property name="js">
58+
<constraint name="Type"><option name="type">string</option></constraint>
59+
</property>
60+
<property name="createdAt">
61+
<constraint name="Type"><option name="type">DateTimeImmutable</option></constraint>
62+
</property>
63+
<property name="enabled">
64+
<constraint name="Type"><option name="type">bool</option></constraint>
65+
</property>
66+
<property name="homepage">
67+
<constraint name="Type"><option name="type">bool</option></constraint>
68+
</property>
69+
<property name="host">
70+
<constraint name="Type"><option name="type">string</option></constraint>
71+
</property>
72+
<property name="locale">
73+
<constraint name="Type"><option name="type">string</option></constraint>
74+
</property>
75+
<property name="category">
76+
<constraint name="Type"><option name="type">Orbitale\Bundle\CmsBundle\Entity\Category</option></constraint>
77+
</property>
78+
<property name="parent">
79+
<constraint name="Type"><option name="type">Orbitale\Bundle\CmsBundle\Entity\Page</option></constraint>
80+
</property>
81+
</class>
82+
</constraint-mapping>

Tests/Entity/CategoryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public function testCategorySlugIsNotTransliteratedIfEmpty(): void
162162

163163
$category->updateSlug();
164164

165-
static::assertNull($category->getSlug());
165+
static::assertSame('', $category->getSlug());
166166
}
167167

168168
public function testSuccessfulValidation(): void

0 commit comments

Comments
 (0)